Iframe中的IE9窗口对象没有addEventListener

时间:2013-08-14 10:10:19

标签: javascript iframe internet-explorer-9 cross-domain addeventlistener

我正在使用javascripts document.write向页面添加iframe。在Iframe中调用的页面(来自另一个域)使用

进行一些设置
window.addEventListener('load', function() { 
    //do stuff here 
}

适用于Chrome。它适用于Firefox。它适用于Opera。

它在IE9中不起作用。我得到了最奇怪的消息,“对象没有属性或方法'addEventListener'”。它显然是IE9正在讨论的窗口对象,因为当我

console.log(window)

我得到了

[object Window]

但是当我

console.log(window.addEventListener)

我得到了

undefined

当我直接调用页面时,脚本运行正常,但在Iframe中我得到了这个神奇的阉割窗口对象,它不知道addEventListener(也可能是其他东西)?!到底发生了什么事?

1 个答案:

答案 0 :(得分:3)

经过多次试验和错误后,我发现创建我的Iframe的页面已经破坏了HTML(没有Doctype,没有标题标签),从而迫使IE9进入Quirks模式,这显然意味着能力降低。清理加载页面后,它可以正常工作。