jQuery und iframes

February 11, 2010
Als Beispiel möchte ich hier den bekannten JavaScript WYSIWYG-Editor tinyMCE heranziehen. Dieser Editor fügt nämlich als (vermeintliche) Textarea einen iframe ein. Der folgende Code-Ausschnitt zeigt das DOM desselben.

DOM des tinyMCE iframes

Nun ist man geneigt zu glauben, man könne die Textarea z.B. einfach wie folgt selektieren:
$('#tinymce')
Das kann aber nicht funktionieren, weil der iframe über seine eigene HTML-Struktur und damit sein eigenes DOM (Document Object Model) verfügt.

Die gute Nachricht ist, dass dieses DOM ansprechbar ist. In purem JavaScript würde man das folgendermaßen machen:
window.frames['Name des iframes'].document.getElementById('anzusprechende id')

Verwendet man das Framework jQuery, sähe der Selektor so aus:
$('#id des iframes').contents().find('#anzusprechende id')
oder in unserem Beispiel mit dem tinyMCE:
$('#content_ifr').contents().find('#tinymce').html();
Dabei ist die Funktion contents() (unter anderem) speziell für das Selektieren von iframes ausgelegt. Weil der Selektor nur einmalig verwendet werden kann, bedienen wir uns eines kleinen Tricks: die Funktion find() selektiert uns schließlich die Id oder Klasse im iframe.


Kommentare

Ansicht der Kommentare: (Linear | Verschachtelt)

Hey!

Dankeschön für den Artikel! Arbeite mich auch gerade in jQuery rein(obwohl man das eigentlich nicht arbeiten nennen kann, ist ja recht einfach) und bin jetzt auch auf das "Problem" mit dem iFrame gestolpert, weil ich ihn für eine Statusanzeige eines Uploads brauche. Läuft nun alles.

Liebe Grüße!
Tuesday, 3. August 2010 um 21:23 (Link) (Antwort)

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss um dieses Verfahren anzuwenden.
CAPTCHA







Inhalt

88. Slash der Woche

Thomas Chorherr, ehem. Chefredakteur "Die Presse": "Wien Energie propagiert das Selbstablesen der Strom- und Gaszähler. Was, wenn man keine Brille dabeihat?" iBlog: Gute Argumente können niederschmetternd sein.
Slash-Archiv

iTwitter

Suche

Rechtliches

Kategorien

Kommentare

Fri, 03.09.2010 20:34
Lieber Patrick, hach, hab i ch doch tatsächlich die schlie ßende Klammer übersehen :o) Ic h habs oben korrigiert, [...]
Fri, 03.09.2010 20:09
Danke! Ich sehe das genauso wi e Du - und ich suchte (auch) v erzweifelt nah einem "fading-r eplace". Durch Deinen se [...]
PHP-Friends zu jQuery und iframes
Tue, 03.08.2010 21:23
Hey! Dankeschön für den Art ikel! Arbeite mich auch gerade in jQuery rein(obwohl man das eigentlich nicht arbeit [...]
Sat, 08.05.2010 13:46
THX!!
Freakazoid zu Vim Tabs
Sat, 13.03.2010 00:02
WTF? :Explore - ich fasse es nicht ^^ ..und ich dachte, ich kenne meinen vim... Vie len Dank!

Archiv

Blog abonnieren

ikarius.net

Die Webseite zum Blog:
www.ikarius.net

Erste Hilfe Test und
Sanitätshilfe Test auf erstehilfe.ikarius.net

Ikarios

statische Seiten

Verwaltung des Blogs