(未完成)
问题
发现当页面中存在iframe,并且它有src属性时,window.onload函数会执行两次。当去掉src属性,或者删掉这些iframe之后,onload只会执行一次。
var counter = 0;
window.onload = function(){
console.log(++counter);
}
而且,两次执行onload的输出都是1,也就是说,onload为iframe的“渲染”独立的执行了一次。
目前,尚不知道原因。
推测
iframe会阻塞之后的dom渲染,以及脚本执行。理论上讲,iframe是dom树的一部分,当iframe没有loading完成,dom树也就没有渲染结束。所以之后的脚本,图片加载都会被阻塞。而且,经测试,即使iframe 加载完成,也会继续阻塞后面的文档,脚本。
所以,iframe不应该直接添加在主文档中,应该在主文档加载完成后,通过js动态添加到合适的位置。
如非必要,不建议使用iframe。