zoeken op een pagina

Status
Niet open voor verdere reacties.

avs

Gebruiker
Lid geworden
13 apr 2004
Berichten
28
Ik heb een eigen startpagina gemaakt met 2 frames.
Bovenin de kop met een rol-uit menuutje om de verschillende categorieën te zoeken.
In het onderste frame al mijn links (favorieten).

Nu vond ik de volgende tip om op een pagina te zoeken:

Tekst zoeken op een pagina

Met dit script kun je zoeken naar bepaalde tekst op een pagina. Net als bij de functie Find wordt de gezochte tekst gemarkeerd als deze wordt gevonden. Als het woord niet wordt gevonden, wordt het bericht Not found weergegeven. Dit is heel handig, vooral als er veel tekst op de pagina staat. Kijk zelf maar!

Je kunt dit zoeksysteem implementeren door de volgende code naar je pagina te kopiëren:

<script language="JavaScript">
/* Find In Page Script- By Mike Hall (MHall75819@aol.com) */
var NS4 = (document.layers); // Which browser?
var IE4 = (document.all);
var win = window; // window to search.
var n = 0;
function findInPage(str) {
var txt, i, found;
if (str == "")
return false;
// Find next occurance of the given string on the page, wrap around to the
// start of the page if necessary.
if (NS4) {
// Look for match starting at the current point. If not found, rewind
// back to the first match.
if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;
// If not found in either direction, give message.
if (n == 0)
alert("Not found.");
}
if (IE4) {
txt = win.document.body.createTextRange();
// Find the nth match from the top of the page.
for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart("character", 1);
txt.moveEnd("textedit");
}
// If found, mark it and scroll it into view.
if (found) {
txt.moveStart("character", -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
}
// Otherwise, start over at the top of the page and find first match.

else {
if (n > 0) {
n = 0;
findInPage(str);
}
// Not found anywhere, give message.
else
alert("Not found.");
}
}
return false;
}
</script>

<form name="search" onSubmit="return findInPage(this.string.value);">
<input name="string" type="text" size=20 onChange="n = 0;">
<input type="submit" value="Rechercher">
</form>

Wat ik nu wil is dat dit script in het bovenste frame staat (naast het rol-uit menuutje), maar dat er gezocht wordt in het onderste frame. Kan dat en zo ja hoe moet ik dit scriptdan aanpassen?
 
ik denk dat je bij:
Code:
var win = window; // window to search.
window moet vervangen door de naam van jouw onderste frame

--Johan
 
Dat frame heet links.htm

Als ik window vervang door links krijg ik de melding

"links" is niet gedefinieerd
 
Als ik op die plaats 'links' invoeg dan gaat dat gedeelte goed.

Verderop bij
if (IE4) {
txt = win.document.body.createTextRange();
krijg ik de melding

'win.document.body' is leeg of geen object

Er gaat dus iets nog niet goed
 
var win = window; // window to search.

heb ik vervangen door

var win = window.top.frames['links']; // window to search.

en nu werkt het in HTML-kit, en in Internet Explorer, maar niet in Firfox, en dat is nu juist mijn favoriete browser.
Hoe kan ik dit nog oplossen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan