Rolf B: Mit JQuery ein Element aus einem IFrame selektieren

Beitrag lesen

Hallo ebody,

das wird daran liegen, dass der iframe eine nachgeladene Ressource ist und Du erstmal warten musst, bis dieser Ladevorgang beendet ist. Das ist allerdings nicht ganz trivial.

Quelle 1: https://stackoverflow.com/questions/16960829/detect-domcontentloaded-in-iframe

Du könntest Dich auf das DOMContentLoaded Event des contentWindow im iframe registrieren. Das funktioniert laut Quelle nicht, wenn Du das src Attribut nachträglich änderst (weil es dann ein anderes Document gibt), aber wenn ich die Quelle 1 richtig verstehe, sollte es für das erste Laden funktionieren.

Alternativ kannst Du Dich auch auf das load Event des iframe-Elements registrieren, musst dann nur abwarten bis der iframe alle seine Ressourcen geholt hat.

Quelle 2: https://stackoverflow.com/questions/2161388/calling-a-parent-window-function-from-an-iframe

Da steht noch eine dritte Idee - in der Window.postMessage() Antwort. Lass den iframe Bescheid sagen, wenn er geladen ist. Mit postMessage funktioniert das sogar wenn Rahmen und iframe von unterschiedlichen Domains stammen. Kommen sie von der gleichen Domain, kannst Du im iframe über window.parent das window-Objekt der Rahmenseite erreichen und dort direkt Scripte aufrufen (die dann natürlich global sichtbar sein müssen). Messaging ist besser. Kompatibilität sollte hinreichend sein, solange iframes verwendet werden (bei Popup-Fenstern geht Messaging in MS Browsern nur mit Tricks).

Rolf

--
sumpsi - posui - clusi