Dynamisch erstellen iframe, und befestigen Sie ein onload-Ereignis, um es
Habe ich einen iframe dynamicaly und fügte hinzu, ein src-Attribut. Dann habe ich angehängt, die das iframe-Element body der Seite. Wissen möchte ich anfügen eines onload-Ereignisses iframe zu Lesen, die das iframe-Inhalt. Kann jemand empfehlen, wie ich das mache.
frame = document.createElement('iframe');
frame.setAttribute('src','http://myurl.com');
body.appendChild(frame);
frame.onload = function(){
alert('hi'); //here i want to read the content in the frame.
}
InformationsquelleAutor sushil bharwani | 2011-05-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einige Browser haben das onload-Ereignis für ein iframe, sollten Sie zunächst versuchen, es zu befestigen, bevor Sie die iframe-src-Attribut.
Ich würde vermeiden Sie es insgesamt, da in einigen Browsern ist es vielleicht nicht das Feuer, das unter bestimmten Bedingungen (z.B. Ziel war es, im cache im IE).
Könnte man Benutzer einen timer prüfen, ob der Rahmen contentWindow s readystate abgeschlossen ist
+1 thx für den comment im IE-cache
Es funktioniert nicht für mich, weil der iframe in einen anderen Ursprung, den ich erhalten SecurityError: Blockiert ein Rahmen mit Herkunft "localhost" Zugriff auf eine cross-origin-Rahmen.
Sie sind richtig, es wird ja nur mit demselben origin-frames. Es kann sicherer sein, um davon ausgehen Fenster.onload-Funktion ist heute besser, je nachdem, welche Browser Sie planen, zu unterstützen.
InformationsquelleAutor Asaf
Habe ich gerade versucht, und es funktionierte in Chrome:
W3school sagt
contentWindow
unterstützt wird in allen gängigen Browsern.InformationsquelleAutor Mauvis Ledford
Ich bezweifle, können Sie fügen Sie ein "onload" - Ereignis in einem iframe. Es funktioniert nicht auf allen Browsern. Sie können auf der anderen hand prüfen, ob der iframe geladen wurde:
Oder AJAX verwenden, laden Sie den Inhalt in den container. Mit AJAX kann man eine korrekte load-complete-Ereignis.
versuchen onload="return function_name();"
und wenn Sie möchten, nehmen Sie Angelegenheiten in Ihre eigenen Hände und erschweren ein wenig, können Sie einen periodischen Zeitgeber, der erinnert sich an das Dokument.Körper.innerHTML eines iframe und feuert Sie Ihre eigene event-jedes mal, wenn Sie sich ändert. Wenn Sie nur es einmal, können Sie zerstören die timer nach dem es ausgelöst hat, ein Ereignis.
InformationsquelleAutor Anze Jarni