为什么迭代窗口对象的属性会导致IE中的错误?

时间:2013-06-21 21:54:54

标签: javascript internet-explorer

我经常遇到这个问题,最后认为这可能值得一个问题。

在IE中运行以下代码会导致输出frameElement,这意味着找到了属性frameElement,但如果您尝试通过window["frameElement"]访问它,则会抛出错误。

for (var i in window){
    try {
        var c = window[i]
    } catch(e) {
        console.log(i);
    }
}

FIDDLE

当我试图简单地访问窗口的每个属性时,我最初意识到这个问题,但总是出现错误。

有谁知道这个的原因?怎么可能,有一个属性,但它无法访问?

1 个答案:

答案 0 :(得分:0)

这可能发生在任何浏览器上。任何对象(包括Window)上的属性都可以是具有副作用的getters方法,包括抛出异常。