Следующий код вызывает ошибку в консоли Firefox в строке с продолжением.
SecurityError: The operation is insecure.
if( !sheet.cssRules ) { continue; }
Однако не в Chrome и IE 11... Может кто-нибудь объяснить -why? (И также, как переделать, чтобы сделать его безопасным.) Я предполагаю, что это проблема междоменного уровня, но я застрял в том, как правильно переработать код.
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;
}