Ga naar inhoud

JavaScript Search-engine frame problemen


Aanbevolen berichten

Van een site heb ik een standaard voorbeeld van een javascript search engine gedownload. Deze werkt redelijk simpel, maar de resultaten worden standaard in een nieuw venster geopend. De bedoeling is echter dat die in mijn rechterframe (content) geopend worden. Ik heb al in het forum gezocht, maar ik weet te weinig van javascript om deze code om te bouwen. Wie kan me helpen? Groeten, rjpm De code staat hieronder: win = window.open(); win.document.write(page); txt = frm.srchval.value.split(" "); fnd = new Array(); total=0; for (i = 0; i < item.length; i++) { fnd[i] = 0; order = new Array(0, 4, 2, 3); for (j = 0; j < order.length; j++) for (k = 0; k < txt.length; k++) if (item[i][order[j]].toLowerCase().indexOf(txt[k]) > -1 && txt[k] != "") fnd[i] += (j+1); } for (i = 0; i < fnd.length; i++) { n = 0; w = -1; for (j = 0;j < fnd.length; j++) if (fnd[j] > n) { n = fnd[j]; w = j; }; if (w > -1) total += show(w, win, n); fnd[w] = 0; } win.document.write("</table><br>Totaal gevonden : "+total+"<br></body></html>"); win.document.close(); } function show(which,wind,num) { link = item[which][1] + item[which][0]; line = "<tr><td><a href='"+link+"'>"+item[which][2]+"</a> &&Score: "+num+"<br>"; line += item[which][4] + "<br>"+link+"</td></tr>"; wind.document.write(line); return 1; }
Link naar reactie
Volgens mij vergeet je een stukje. Dit ziet er namelijk niet uit als een volledig stuk code. Ik heb de code niet goed bekeken, maar zo op het eerste gezicht lijkt het mij voldoende om de referentie naar het window object te wijzigen. Hiervoor wijzig je de eerste regel uit de code die je hierboven plaatst in: [code:1:307b772476] win = parent.frames["ZetHierDeNaamVanJeFrame"]; [/code:1:307b772476]
Link naar reactie
Annie, bedankt voor je snelle reactie. Je hebt gelijk dat ik niet de hele code heb geplaatst. Ik heb je aanwezingen opgevolgd, maar dan krijg ik een foutmelding (page is undefined). Voor de zekerheid heb ik hieronder de hele code gezet. Ik hoop dat je me nog een keer kunt helpen! Groet, rjpm <!-- Begin var item = new Array(); /* Breng hieronder de wijzigingen aan met betrekking tot je eigen website. Je vult in : De naam van je pagina De map waarin deze pagina staat, als het in een aparte map staat (dit moet eindigen met /). Staat deze pagina niet in een aparte map, zet er dan niets neer. Titel van de pagina Trefwoorden over jouw pagina. Je scheidt ze met een komma Een toelichting */ // "Frontpage cursus","pad","paginatitel","tref,woor,den","commentaar" c=0; item[c]=new Array("test.htm","","pagina1","keywords","testpagina"); c=++; item[c]=new Array("test.htm","","pagina2","keywords","testpagina"); c=++; item[c]=new Array("test.htm","","pagina3","keywords","testpagina"); c=++; item[c]=new Array("test.htm","","pagina4","keywords","testpagina"); c=++; item[c]=new Array("test.htm","","pagina5","keywords","testpagina"); c=++; item[c]=new Array("test.htm","","pagina6","keywords","testpagina"); c=++; item[c]=new Array("test.htm","","pagina7","keywords","testpagina"); /* Hier geef je de eigenschappen van de pagina met daarop de zoekresultaten aan */ page="<html><head><title>Zoekresultaten</title><link rel=stylesheet href=mijnstylesheet.css></head><body bgcolor='white'><p>Zoekresultaten</p><p align=center>De links openen in dit venster. Je kunt het vorige venster sluiten.</p><center><table border=0 cellspacing=10 width=80%>"; /* Nu komt er een heel stuk code. Hier snap je waarschijnlijk niets van, maar dat is ook niet nodig. */ function search(frm) { win = window.open("","","titlebar=yes,location=yes,scrollbars=yes,resizable=yes,toolbar=yes,statusbar=yes,menubar=yes"); win.document.write(page); txt = frm.srchval.value.split(" "); fnd = new Array(); total=0; for (i = 0; i < item.length; i++) { fnd[i] = 0; order = new Array(0, 4, 2, 3); for (j = 0; j < order.length; j++) for (k = 0; k < txt.length; k++) if (item[i][order[j]].toLowerCase().indexOf(txt[k]) > -1 && txt[k] != "") fnd[i] += (j+1); } for (i = 0; i < fnd.length; i++) { n = 0; w = -1; for (j = 0;j < fnd.length; j++) if (fnd[j] > n) { n = fnd[j]; w = j; }; if (w > -1) total += show(w, win, n); fnd[w] = 0; } win.document.write("</table><br>Totaal gevonden : "+total+"<br></body></html>"); win.document.close(); } function show(which,wind,num) { link = item[which][1] + item[which][0]; line = "<tr><td><a href='"+link+"'>"+item[which][2]+"</a> &&Score: "+num+"<br>"; line += item[which][4] + "<br>"+link+"</td></tr>"; wind.document.write(line); return 1; } // End -->
Link naar reactie
De foutmelding wordt waarschijnlijk veroorzaakt doordat er al eerder in je script een aantal fouten zitten. De variabele [i:8ed47458f3]page[/i:8ed47458f3] is namelijk gewoon gedeclareerd (globaal) en zou daarom gewoon beschikbaar moeten zijn. Onderstaande is geen geldige javascript code: [code:1:8ed47458f3]c=++;[/code:1:8ed47458f3] Wijzig dit maar eens in: [code:1:8ed47458f3]c++;[/code:1:8ed47458f3]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...