Suchenfunktion mit Javascript (!) über Framegrenzen hinweg
Blaes Fevrier
- javascript
Hallo Ihr da draußen.
Ich bin ein blutiger Anfänger im Javascript, und ein Newbie hier im Forum, daher vorweg profilaktisch die Bitte um Nachsicht mit mir.
Es ist spät in der Nacht (gleich 5:15 Uhr) und ich bin des Suchens müde.
Ich benötige ein Javascript (und es muß deshalb ein Javascript sein, weil die zu durchsuchenden Seiten nur auf der Festplatte des Clients liegen), das zwei bestimmte HTML-Seiten durchsucht. Das ganze soll quasi so funktionieren:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<script language="JavaScript">
var NS4 = (document.layers);
var IE4 = (document.all);
var win = window;
var n = 0;
function findInPage(str) {
var txt, i, found;
if (str == "")
return false;
if (NS4) {
if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;
if (n == 0)
alert("Nichts gefunden.");
}
if (IE4) {
txt = win.document.body.createTextRange();
for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart("character", 1);
txt.moveEnd("textedit");
}
if (found) {
txt.moveStart("character", -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
}
else {
if (n > 0) {
n = 0;
findInPage(str);
}
else
alert("Nichts gefunden.");
}
}
return false;
}
</script>
</HEAD>
<BODY bgColor=#ffffff>
<DIV> </DIV><form name="search" onSubmit="return findInPage(this.string.value);">
<font size=3><input name="string" type="text" size=15 onChange="n = 0;"></font>
<input type="submit" value="Suchen">
</form>
...das ganze funktioniert dann, wenn hier der zu durchsuchende Text steht ...
</BODY></HTML>
Nun möchte ich es aber doch noch ein bißchen anders haben: Der zu durchsuchende Text steht nämlich nicht auf der selben Seite, auf der auch das JavaScript implementiert ist, sondern in einer eigenen HTML-Datei, die per Frame neben der Such-Eingabemaske angezeigt werden soll.
Und noch etwas: Es darf auch kein Java-Script sein, das die zu durchsuchende Datei vorher indiziert, weil diese häufig automatisch aktualisiiert wird.
Wie kann ich so etwas machen?
Würdet Ihr mir bitte helfen?
Vielen Dank im Voraus und beste Grüße
Blaes
Hallo Ihr da draußen.
Tach
Also wenn du das Script schreibst bist du aber kein blutiger Anfänger mehr!
Nun möchte ich es aber doch noch ein bißchen anders haben: Der zu durchsuchende Text steht nämlich nicht auf der selben Seite, auf der auch das JavaScript implementiert ist, sondern in einer eigenen HTML-Datei, die per Frame neben der Such-Eingabemaske angezeigt werden soll.
Und noch etwas: Es darf auch kein Java-Script sein, das die zu durchsuchende Datei vorher indiziert, weil diese häufig automatisch aktualisiiert wird.
Wie kann ich so etwas machen?
Würdet Ihr mir bitte helfen?
Also indizieren auf keinen Fall. Das tut dein Script ja auch nicht soweit ich das erkennen kann. Setz doch einfach am Anfang var win = parent.FrameName
Das ist das window-Objekt für den Frame den du angibst
Müsste eigentlich funzen.
Vielen Dank im Voraus und beste Grüße
Blaes
Tschüss
Tim
Die Ehre, dieses Script programmiert zu haben, gebührt einem sehr guten Freund. Er hat es mir so weit diktiert, ich habe es nur grob korrigiert und angepasst. Aber auf die Idee mit dem parent.Ziel bin ich nicht gekommen.
Es klappt! Super. Vielen Dank.
Blaes