jQuery在Firefox中给出了NS_ERROR_DOM_SECURITY_ERR错误

时间:2010-06-20 00:00:55

标签: jquery

所以,伙计们,我知道我已经超越了我的头脑,所以很可惜。我正在努力学习。

这是名为ifx.js的文件

我有程序员在我的项目上工作,而且一切都很好,直到最近在Firefox上,它只是......不是。

尝试执行操作(打开水平菜单)时收到的错误是:

Error: [Exception... "Security error" code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)" location: "http://xxx.xxx.xx.xxx/~yvonechr/users/lib/ifx.js Line: 389"]

文件中的区域在这里:(以NULL结尾的行是第389行[CODE]

for (p in prop) {
    if (p == 'style') {
        var newStyles = jQuery.parseStyle(prop[p]);
        for (np in newStyles) {
            this.getValues(np, newStyles[np]);
        }
    } else if (p == 'className') {
        if (document.styleSheets) for (var i = 0; i < document.styleSheets.length; i++) {
            var cssRules = document.styleSheets[i].cssRules || document.styleSheets[i].rules || null;
            if (cssRules) {
                for (var j = 0; j < cssRules.length; j++) {
                    if (cssRules[j].selectorText == '.' + prop[p]) {
                        var rule = new RegExp('\.' + prop[p] + ' {');
                        var styles = cssRules[j].style.cssText;
                        var newStyles = jQuery.parseStyle(styles.replace(rule, '').replace(/}/g, ''));
                        for (np in newStyles) {
                            this.getValues(np, newStyles[np]);
                        }
                    }
                }
            }
        }
    } else {
        this.getValues(p, prop[p]);

如果这篇文章错了,我很抱歉,但我会学到的。如果有人能帮助我,我会非常感激,你不会相信它。

3 个答案:

答案 0 :(得分:1)

问题可能是因为你的css文件托管在另一个域中而你正在尝试访问cssRules。

如果可能,您应该在同一个域中托管您的css文件,它将起作用。

我发现这个blog post描述了同样的问题。

答案 1 :(得分:0)

对于其他任何尝试调试此问题的人,如果您尝试在文件字段上设置.val(),则只会发现此错误。我是在事故中这样做的,需要一段时间来确定原因。

答案 2 :(得分:0)

错误:[例外...“安全错误”代码:“1000”nsresult:“0x805303e8(NS_ERROR_DOM_SECURITY_ERR)”

答案:问题可能是因为你编写的prototype.js不止一个(以php格式)。