Opera在jQuery 1.9.1中的nodeType上抛出安全性错误

时间:2013-02-24 19:25:23

标签: javascript jquery opera

自从将jQuery更新为1.9.1以来,Opera开始抛出与nodeType相关的错误。

我有以下代码:

$("p, td, div, span").children().andSelf().contents().each(function(){
    if (this.nodeType == 3)
    {
        ...
    }
});

Opera抛出

  

未处理错误:安全错误:尝试读取受保护变量

即使我删除了那个代码块,Opera也会抛出相同的错误,这次是jquery-1.9.1.min.js本身的一行:

return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : b.isFunction(e) ? r.ready(e) : (e.selector !== t && (this.selector = e.selector, this.context = e.context), b.makeArray(e, this))

如果这改变了什么,我正在从http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js

加载jQuery

更新:

相同的代码在Firefox中导致类似的错误:

Permission denied to access property 'nodeType'

Chrome中的一切都按预期工作。

1 个答案:

答案 0 :(得分:1)

使用$("p, td, div, span").children().addBack().not("iframe").contents()在iframe上不应用.contents()

顺便说一下,如果你只想获得nodeType == 3的内容节点,你可能只想使用.children()