以下代碼在繼續的行中的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