我们通过标准HTML STYLE标签包含CSS文件.
然后,我们需要JavaScript代码来访问CSS类和属性.
在IE和Chrome中一切正常,但在Firefox中会引发以下异常:
未捕获的异常:安全错误(NS错误域安全错误)
这是JavaScript代码:
for (var i = 0; i != window.document.styleSheets.length; i++) {
rules = window.document.styleSheets.item(i);
if(rules.href.indexOf('someurl.com')){
break;
}
}
return rules.cssRules || rules.rules;
它在IE,Chrome和Safari中都可以正常运行,但在Firefox和Opera中却没有.
有任何想法吗?
提前致谢
解决方法:
可以从任何域引用JavaScript,但是只能对执行它的文档的确切域进行更改.确切的域是指从协议到第一个目录之前的所有内容都必须相同.
您不应使用JavaScript来访问其他域.我不确定为什么它可以在IE或Chrome中运行,但事实并非如此.如果CSS来自与执行JavaScript的页面不同的域,则将引发安全错误.
真正的问题是:项目是什么属性?我看不到您的代码中定义的内容,也从未见过使用过的内容.为什么要尝试使用JavaScript更改样式表,而不是简单地将样式更改直接应用于不会引起安全问题的DOM?
标签:firefox,css,javascript
来源: https://codeday.me/bug/20191210/2102358.html