前几天做一个用iframe显示曲线图的demo,发现对iframe的contentDocument绑定
onclick事件都无效,而在页面中对iframe.contentDocument的onclick
属性为undefined;而当iframe去掉src属性后,在对其绑定onclick事件,该事件生效;
对比之下才发现原来当对iframe.contentDocument绑定事件时,iframe还没有加载
完毕,此时对于contentDocument虽然可以绑定该事件处理函数,但是却无法执行,
因为此时contentDocument为空页面,可以观察到此页面的url为 about:blank
var f = document.createElement('iframe'); f.src = '../promise/promise.html'; document.body.appendChild(f) f.contentDocument.onclick = function(){console.log(123)} console.log(f.contentDocument.onclick)
而
f.onload = function(){ f.contentDocument.onclick = function(){console.log(123)} console.log(f.contentDocument.onclick) }
等待iframe加载完毕再绑定事件可解决此问题。