Следующий код вызывает ошибку в консоли 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;
 }
