Suchfunktion für Framseiten

Catgirl77

Grünschnabel
Hallo,

Mein Web besteht aus zwei Frames, einmal den Navigations-Frame und dem Hauptframe. Ich würde gerne im Hauptframe nach Wörtern suchen. Im Navi-Frame soll aber das Suchformular stehen und im Hauptframe soll das gefundene Wort blau markiert werden und auf das Wort springen. Ich habe schon was ausprobiert aber das nur im IE im Firefox tut sich da nix :-(


HTML:
<body>
 <div style="position:absolute; top:124px; left:660px;z-index:101">
    <form name="search" onSubmit="return findInPage(this.string.value);">
   		<h2>Suchbegriff eingeben:  
		<input name="string" type="text" size=15 onChange="n = 0;">
		<input type="submit" value="Suchen"><br>
		</h2>
	</form>
  </div>


Code:
//----------JavaScript Suchfunktion------------------------------------------->

var NS4 = (document.layers);
var IE4 = (document.all);

var win = parent.frames["Hauptframe"];
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("Der Begriff" +str + "wurde auf diese Seite nicht 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("Der Begriff "+str + " wurde auf dieser Seite nicht gefunden.");
}
}
return false;
}



//--------------------------Ende Suchfunktion--------------------------->
 
Code:
var NS4 = (document.layers);
var IE4 = (document.all);
...dieses Skript berücksichtigt haltz nur IE und Netscape4...ist wohl älteren Datums.

Hier ne Variante, die auch im Mozilla gehen sollte(bei SelfHTML steht zwar nicht, dass er find() kennt...kennt er aber ;))

Code:
<script type="text/javascript">
<!--
function findTxt(win,txt)
{
  if(win.find)
    {
      win.find(txt)
    }
  else if(rng = win.document.body.createTextRange())
    {
      if(rng.findText(txt)==true)
        {
          rng.select();
        }
    }
}
//-->
</script>
Als Parameter erwartet die Funktion:
1. Einen Zeiger auf das betreffende window-Objekt(in deinem Fall parent.frames["Hauptframe"])
2. Den zu suchenden Text
 

Neue Beiträge

Zurück