动态创建iframe并将onload事件附加到它

sus*_*ani 11 javascript iframe javascript-events

我已经创建了一个iframe动态并添加了一个src属性.然后我将这个iframe附加到页面的正文.知道我想将一个onload事件附加到iframe以读取iframe内容.有人可以建议我该怎么做.

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.
}
Run Code Online (Sandbox Code Playgroud)

Asa*_*saf 15

有些浏览器确实有iframe的onload事件,首先你应该在设置iframe的src属性之前尝试附加它.

我完全避免使用它,因为在某些浏览器中它可能不会在某些条件下触发(例如目标在IE中的缓存中).

您可以使用计时器来检查框架的contentWindow的readystate是否完整

var inter = window.setInterval(function() {
    if (frame.contentWindow.document.readyState === "complete") {
      window.clearInterval(inter);
      // grab the content of the iframe here
    }
}, 100);
Run Code Online (Sandbox Code Playgroud)