我試圖在任何加載的頁面中檢測(然後更改)樣式表。document.styleSheets不檢測所有樣式表
我嘗試如下因素代碼:
// from https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList
var allCSS =
[].slice.call(document.styleSheets)
.reduce(function (prev, styleSheet) {
if (styleSheet.cssRules) {
return prev +
[].slice.call(styleSheet.cssRules)
.reduce(function (prev, cssRule) {
return prev + cssRule.cssText;
}, '');
} else {
return prev;
}
}, '');
console.log(allCSS);
當我運行這個頁面例如在這段代碼中,在控制檯中的幾個樣式表。
但是,這是絕對不是所有樣式,它事實上只是它的一小部分。
例如在調試器中,我看到該頁面從'cdn.sstatic.net'加載all.css
,其樣式很多,都沒有顯示。
我在做什麼錯?以及如何獲得所有樣式表?
Thx!
在Firefox的控制檯中運行你的代碼導致'SecurityError:操作不安全 - 可能是一個交叉的來源問題? –
絕對是一個跨國來源的問題。 – Kaiido
在鉻中運行良好。問題依然存在 - 我如何獲得加載到頁面中的所有樣式表? – kofifus