2

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

window.addEventListener('load', function() { 
    //do stuff here 
}

它适用于 Chrome。它适用于火狐。它适用于 Opera。

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

console.log(window)

我明白了

[object Window]

但是当我

console.log(window.addEventListener)

我明白了

undefined

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

4

1 回答 1

3

经过多次反复试验,我发现创建 iframe 的页面破坏了 HTML(没有 Doctype,没有标题标签),因此迫使 IE9 进入 Quirks 模式,这显然意味着能力下降。清理加载页面后,它工作正常。

于 2013-08-16T12:48:47.227 回答