Mozilla - window.find(...)

Hi!

Ich habe aus einem Forum die folgende Funktion:

bFound = window.find(searchString, false, false, true, false, false, false);

Ich weiss zwar was die Flags bedeuten, aber gibt es trotzdem
irgendwo eine offizielle Doku dazu?
Auf den offiziellen Seiten bin ich nicht so recht fuendig geworden.
Irgendwo muss die Signatur doch festgeschrieben sein.
Google war auch keine Hilfe. Irgendwie habe ich nicht die richtigen
Suchbegriffe.

Das Problem ist, dass die Methode nie „false“ zurueckgibt, da das
erste Suchergebnis immer der Text in dem Eingabefeld ist. Das ist
natuerlich doof, wenn man den Benutzer wissen lassen will, dass es
im Dokument selbst kein Suchtreffer gibt.
Daher moechte ich gerne wissen, wie die Methode implementiert ist
bzw. ob es dazu workarounds gibt.

Danke und Gruss
Patrick

Hallo Patrick,

Zitat aus SelfHTML:

Durchsucht den Inhalt eines Fensters nach einem Text. Entspricht in der Funktionalität dem Menübefehl „Suchen“. Die Suche bezieht sich nur auf die aktuelle Seite.
Erwartet folgende Parameter:

  1. Text = Text, nach dem gesucht werden soll.
  2. Groß-/Kleinschreibung beachten = true für ja oder false für nein übergeben.
  3. Suchrichtung rückwärts = true für ja oder false für nein übergeben.
    Die beiden letzten Parameter sind optional.

mfg

Dirk.Pegasus

Hallo Dirk,

danke fuer deine Antwort. Allerdings haette ich meine Frage
anders formulieren sollen. Mir ist schon klar, was die Funktion
macht, aber mir geht es um die Frage, ob man abstellen kann,
dass diese auch in dem Eingabefeld sucht.
Denn bei keinem Suchtreffer, hat man trotzdem einen Suchtreffer,
naemlich der Text in dem Eingabefeld.
Somit faellt eine Meldung a la „Nicht gefunden“ ins Wasser.

Ich habe es schon mit focus(), blur() und Umstellen der Elemente
versucht und versuche es jetzt noch mit einer anderen Variante.
(mit Mozillas Range object)

Gruss, Patrick

Hallo Patrick,

ok.

Also zwei Ideen, da ja ein Makro angestossen wird kann das den Inhalt des Eingabefeldes zunächst leeren, dann suchen lassen und dann (netter weise) wieder füllen.

Andere Idee: wenn find() auch in anderen Objekten funktioniert den zu durchsuchenden Inhalt in ein div sperren mit id „content“ versehen und dann nur dort suchen. Hätte halt den Vorteil das nur den Content durchsucht wird, also auch keine Navigation Werbung etc. Aber geht das mit dem find? Probiers mal (ich hab gerade keine Lust …)

mfg

Dirk.Pegasus

Hi!

Mit dem Range Object von Mozilla klappt das ausgezeichnet.
Allerdings springt das Script jetzt leider nicht an die gefundene
Stelle, wie es mit der Standard find()-Funktion geht.
(Ausgangsskript siehe Link unten)

Also zwei Ideen, da ja ein Makro angestossen wird kann das den
Inhalt des Eingabefeldes zunächst leeren, dann suchen lassen
und dann (netter weise) wieder füllen.

Okay, mal sehen.

Andere Idee: wenn find() auch in anderen Objekten funktioniert
den zu durchsuchenden Inhalt in ein div sperren mit id
„content“ versehen und dann nur dort suchen. Hätte halt den
Vorteil das nur den Content durchsucht wird, also auch keine

Der zu durchsuchende Content ist bereits in einem div mit genau
jener id. :smile:
Wie aber kann man nur in einem speziellen div suchen?

Probiers mal (ich hab gerade keine Lust …)

Keine Sorge, sollst ja nicht meine Arbeit machen.
Denkanstoesse reichen.

Merci
Patrick

http://www.codingforums.com/showthread.php?t=1683

Hallo Patrick,

Der zu durchsuchende Content ist bereits in einem div mit
genau
jener id. :smile:
Wie aber kann man nur in einem speziellen div suchen?

Unter IE gibts dort so etwas wie
window.document.GetElementsById(id)

allgemeiner und wohl auch neuer:
window.document.all.content

im Script empfiehlt sich:
var myContent = window.document.GetElementsById(id)
mit ner Browserweiche kann man dann sicher myContent „füllen“.

Wenn das Object dann .find() zulässt wär´s so in Butter. (Können die aber wohl nicht)

Alternative:
Das zu zeigende Object selber bestimmen (alle Knoten durchlaufen) und dann
document.all.content.scrollIntoView(„true“);

Keine Sorge, sollst ja nicht meine Arbeit machen.
Denkanstoesse reichen.

das ist nett

mfg

Dirk.Pegasus

1 Like

Hallo Dirk,

danke erstmal fuer deine Anregungen. Leider habe ich noch
keine Loesung gefunden. Ein Problem koennte meine Anordnung
der div-Elemente sein.

document.all.content.scrollIntoView(„true“);

Das war ein gutes Stichwort. War aber leider auch nicht
die Loesung, da ich kein richtiges Element habe zu dem
ich scrollen kann, sondern nur ein Range-Object.
Ich habe auch in der Source vom Mozilla gestoebert, bin
aber auch oder noch nicht am Ziel angelangt.

Never mind, Patrick

p.s. fuer das Archiv:
http://mozref.com/reference/