anoniem Geplaatst: 3 april 2003 Delen Geplaatst: 3 april 2003 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; } Quote Link naar reactie
anoniem Geplaatst: 3 april 2003 Auteur Delen Geplaatst: 3 april 2003 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] Quote Link naar reactie
anoniem Geplaatst: 3 april 2003 Auteur Delen Geplaatst: 3 april 2003 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 --> Quote Link naar reactie
anoniem Geplaatst: 4 april 2003 Auteur Delen Geplaatst: 4 april 2003 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] Quote Link naar reactie
anoniem Geplaatst: 8 april 2003 Auteur Delen Geplaatst: 8 april 2003 Annie, Dit stond inderdaad fout. Ik heb het gewijzigd, maar het wordt nog steeds in een nieuw venster geopend. Weet je misschien hoe ik dit dan aan moet pakken? groet, rjpm Quote Link naar reactie
anoniem Geplaatst: 8 april 2003 Auteur Delen Geplaatst: 8 april 2003 Kan je iets online zetten? Dan kan ik (of iemand anders) even meekijken in de broncode. Ik heb zo het idee dat ik telkens met halve informatie aan het werken ben waardoor het een beetje glazen bol kijken is. Quote Link naar reactie
anoniem Geplaatst: 8 april 2003 Auteur Delen Geplaatst: 8 april 2003 Annie, Ik heb er nog verder aan gesleuteld, maar ik kreeg geen oplossing. Ik heb daarom even een avondje gesurft op het web en ik heb een ander script gevonden dat wel makkelijk aan te passen is. Toch bedankt voor alle moeite. Groet, rjpm Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen