Supportnet / Forum / Webseiten/HTML
Suchfunktion mit Frame
Frage
Hallo,
in meinem Web habe ich eine Suchfunktion eingebaut mit folgendem Code:
<form name="search" onSubmit="return findInPage(this.string.value);">
<font color="#808080">Suchbegriff eingeben:
<input name="string" type="text" size=15 onChange="n = 0;">
<input type="submit" value="Suchen"><br>
</font>
</font>
</form>
Nun möchte ich einen Frame in die Seite integrieren, wo oben die Navigationsleiste und die Suchfunktion liegt. Was muss ich ändern oder hinzufügen, damit in der richtigen Seite dann gesucht wird?
Gruß
Antwort 1 von rfb
ohne die Funktion
findIn zu kennen ist eine Beantwortung nicht möglich!Antwort 2 von rfb
sorry meine natürlich die Funktion
Falls du diese hier verwendest, solltest du statt der Zeile
(in anderen Versionen steht da:
sowas wie
einfügen, wobei Frame-Name natürlich der Name des zu durchsuchenden Frames sein muss.
Keine Garantie - das Script sieht seehhr alt aus (NS4 und IE4) !
findInPage()Falls du diese hier verwendest, solltest du statt der Zeile
var win = this;(in anderen Versionen steht da:
var win = window;)sowas wie
var win = parent.frames["Frame-Name"]; einfügen, wobei Frame-Name natürlich der Name des zu durchsuchenden Frames sein muss.
Keine Garantie - das Script sieht seehhr alt aus (NS4 und IE4) !
Antwort 3 von bravo2
Das Script hab ich beim Googeln gefunden, keine Ahnung wie alt das ist, wichtig war mir, dass es funzt und meinen Zwecke erfüllt, dass es bis jetzt auch tat. Vielleicht könntest du mir eine Alternative vorschlagen.
Antwort 4 von rfb
Alternativen? Nein, ich vertraue darauf dass die meisten Compi-Nutzer die Suchfunktionen ihrer Browser kennen (wobei ich aber auch grundsätzlich keine Frames nutze, die das Surfen unnötig verkomplizieren). Ansonsten würde ich sowas wohl komplett neu programmieren unter Nutzung der Möglichkeiten des DOM (das wäre vielleicht eine Programmierübung für meine nächsten Mußestunden ;-)
Antwort 5 von bravo2
Ich würde das Ganze auch gerne ohne Frames realisieren, aber leider bin in noch nicht so fit im Progammieren, darum arbeite ich mit Frontpage. Die Seite die durchsucht werden soll ist sehr lang, darum hatte ich mich für Frames entschieden. Wie kann ich die Navi-Leiste mit Suchfunktion ohne Frames lösen, wo kann ich mich über Alternativen informieren?
Antwort 6 von rfb
zb hier: http://barrierefrei.e-workers.de/index.php
unter "Service" gibts mehrere Workshops zum Thema Framealternativen zum Download.
Frames machen nicht nur in eigenen "Suchmaschinen" Probleme sondern auch bei google und Co.
unter "Service" gibts mehrere Workshops zum Thema Framealternativen zum Download.
Frames machen nicht nur in eigenen "Suchmaschinen" Probleme sondern auch bei google und Co.
Antwort 7 von bravo2
Leider funzt das Script nicht. Die Änderung habe ich vorgenommen, aber es wird keine Suche gestartet.
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 diese Seite nicht gefunden.");
}
}
return false;
}
Vielen Dank für deinen Tipp, ich werd mir mal in Ruhe den Workshop anschauen....
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 diese Seite nicht gefunden.");
}
}
return false;
}
Vielen Dank für deinen Tipp, ich werd mir mal in Ruhe den Workshop anschauen....
Antwort 8 von rfb
bei
parent.frames[Hauptframe];
fehlen die Anführungszeichen!
parent.frames[Hauptframe];
fehlen die Anführungszeichen!
Antwort 9 von bravo2
Uups...schon ausgebessert! Es funktioniert schon, aber eine entgültige Lösung ist das nicht. Da muss ich mich wohl in CSS besser einarbeiten

