以下代码在继续的行中的Firefox控制台中引发错误。安全错误操作在Firefox中是不安全的.stylesheets
SecurityError: The operation is insecure.
if(!sheet.cssRules) { continue; }
但是在Chrome和IE 11中没有......有人可以解释为什么? (以及如何重新工作以确保安全。)我认为这是一个跨域问题,但我坚持如何正确地重新处理代码。
var bgColor = getStyleRuleValue('background-color', 'bg_selector');
function getStyleRuleValue(style, selector, sheet) {
var sheets = typeof sheet !== 'undefined' ? [sheet] : document.styleSheets;
for (var i = 0, l = sheets.length; i < l; i++) {
var sheet = sheets[i];
if(!sheet.cssRules) { continue; }
for (var j = 0, k = sheet.cssRules.length; j < k; j++) {
var rule = sheet.cssRules[j];
if (rule.selectorText && rule.selectorText.split(',').indexOf(selector) !== -1)
return rule.style[style];
}
}
return null;
}
[X] SecurityError:操作不安全。 \t if(!sheet.cssRules){continue; } – jchwebdev
这种情况如何不安全?你在传递一个CrossSite样式表吗?气味Buggy,我会与Firefox文件。 – jeremyjjbrown
这是一个WordPress的网站,所以,是的,一些样式表将会来自其他领域 - 例如Google。我显然不够先进,无法理解为什么这是上述代码中的问题。 – jchwebdev