Funktion in einem Kind-Frame aufrufen - möglich?
malte
- javascript
Hallo,
ich habe ein Dokument in dem ein iFrame liegt. In diesem Dokument ist auch eine Suchbox. onKeyUp soll von dieser Suchbox aus eine JS Methode in dem Dokument im iFrame aufgerufen werden. Dieses holt sich dann den aktuellen String aus dem Input im top.document.
Ist es irgendwie möglich, dass ich via DOM auf das Dokument im iFrame erst zugreife und dort dann die JS Methode aufrufe? Also etwas wie:
iframe_name.document.javascript:methode(string) ?
Herzlichen Dank für Eure Hilfe,
Malte
Hallo malte,
Ist es irgendwie möglich, dass ich via DOM auf das Dokument im iFrame erst zugreife und dort dann die JS Methode aufrufe? Also etwas wie:
iframe_name.document.javascript:methode(string) ?
So ähnlich! (wenn du "javascript:methode" abstrakt meinst)
Den Zugriff auf JS-Junktionen über Framegrenzen hinweg beschreibt Sven sehr anschaulich in seinem Artikel:
http://aktuell.de.selfhtml.org/tippstricks/javascript/fensterzugriff/index.htm
Die Frage, die sich mir nur stellt, ist ob das Event auch aus einem Iframe heraus in seinen Mutterframe "nach oben bubbelt", so wie das in verschachtelten Elementen innerhalb eines Dokuments der Fall ist. Da habe ich Zweifel. Berichte mal, wenn du es ausprobiert hast!
Ich fürchte, der fensterübergreifende Funktionsaufruf wird in dem Fall schwierig werden, denn du weißt ja nie, welches Fenster gerade den Focus hat, also müsstest du das Event wohl in jedem einzelnen Dokument, deinem Mutterdokument und den Dokumenten der darin enthaltenen Iframe(s) überwachen und die Funktion jeweils prohylaktisch von überall her aufrufen.
Gruß Gernot
Hallo,
funktioniert soweit.
In dem übergeordneten Element nutze ich:
<input name="keyword" id="keyword" onkeyup="javascript:parent.iframe.holeDasKeyword();"/>
<iframe frameborder="0" name = "iframe" class="referenz" src = "auswahl.html">
</iframe>
Und in der auswahl.html komme ich an das Keyword über:
var keyword = top.document.getElementById('keyword').value;
Funktioniert einwandfrei!
Herzlichen Dank
Hallo malte,
<input name="keyword" id="keyword" onkeyup="javascript:parent.iframe.holeDasKeyword();"/>
Dan hattest du das also doch nicht abstrakt gemeint, sondern konkret!
Funktioniert einwandfrei!
Lass das Label "javascript:" in dem Eventhandler lieber weg, die enthalten per Default sowieso Javascript, dass braucht man ihnen nicht erst zu sagen. Es könnte sonst auch sein, dass es in manchen Browsern _nicht_ "einwandfrei" funktioniert.
Gruß Gernot