我正在使用javascripts document.write向页面添加Iframe。Iframe内部调用的页面(来自另一个域)使用进行一些设置
window.addEventListener('load', function() {
//do stuff here
}
它在Chrome中工作。它适用于Firefox。它在歌剧院工作。
它在IE9中不起作用。我得到了最奇怪的消息,即"Object没有属性或方法'addEventListener'"。这显然是IE9所说的窗口对象,因为当我
console.log(window)
我得到
[object Window]
但是当我
console.log(window.addEventListener)
我得到
undefined
当我直接调用页面时,脚本运行良好,但在Iframe中,我得到了一个神奇的阉割窗口对象,它不知道addEventListener(可能还有其他东西)?!这里到底发生了什么?
经过多次尝试和错误,我发现创建Iframe的页面破坏了HTML(没有Doctype,没有title标记),因此迫使IE9进入Quirks模式,这显然意味着能力降低。清理加载页面后,它工作正常。