Blaes Fevrier: Suchenfunktion mit Javascript (!) über Framegrenzen hinweg

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

  1. 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

  2. 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