2017-08-29 1 views
0

Mit Code folgendenIframe Inhalt Laden und Onload-Ereignis

<iframe id="myframe" src="..."></iframe> 

<script> 
document.getElementById('myframe').onload = function() { 
    alert('myframe is loaded'); 
}; 
</script> 

Bin ich richtig, dass der iframe Inhalt durch einen zusätzlichen Faden geladen wird, so gibt es eine Race-Bedingung sein kann? Ist es möglich, dass der Inhalt iframe vor dem Ereignishandler im Skript (im Hauptthread) geladen wird, was die alert zur neueren Show verursacht?

+1

Nein, sind Sie nicht richtig. Warum denkst du, dass es so funktioniert? Hast du es erforscht? Sie erhalten einen Ausführungs-Thread für JS in 'top'. Load-Ereignis für die Elternseite wird ausgelöst, nachdem der 'iframe' geladen wurde (und andere Sachen wie verknüpfte JS-Dateien, CSS, Bilder). Siehe JS Fiddle: https://jsfiddle.net/66xe7j1z/ – nothingisnecessary

+0

Mögliches Duplikat von [Wann wird genau ein IFRAME-Onload-Ereignis ausgelöst?] (Https://stackoverflow.com/questions/815263/exactly-when-does-an- iframe-onload-event-fire) – nothingisnecessary

+0

So ist es garantiert, dass das Skript immer ausgeführt wird, bevor Iframe Load-Ereignis auftritt? – Mulligun81

Antwort

0


 

 
    function iframeDidLoad(){ 
 
     alert("Hello World"); 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<iframe id="myiframe" src="#" onLoad="iframeDidLoad();"></iframe>