Javascript document.styleSheets不会检测所有样式表
我试图在任何加载的页面中检测(然后更改)样式表 我尝试以下代码:Javascript document.styleSheets不会检测所有样式表,javascript,html,css,Javascript,Html,Css,我试图在任何加载的页面中检测(然后更改)样式表 我尝试以下代码: //来自https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList var allCSS= [].slice.call(document.styleSheets) .reduce(函数(上一个,样式表){ if(styleSheet.cssRules){ 返回上一个+ [].slice.call(styleSheet.cssRules) .reduce(功能(上
//来自https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList
var allCSS=
[].slice.call(document.styleSheets)
.reduce(函数(上一个,样式表){
if(styleSheet.cssRules){
返回上一个+
[].slice.call(styleSheet.cssRules)
.reduce(功能(上一个,cssRule){
返回prev+cssRule.cssText;
}, '');
}否则{
返回上一个;
}
}, '');
console.log(allCSS)代码>
在某些浏览器中,如果从不同的域加载样式表,
调用cssRules
会导致SecurityError
- 用户代理(默认)样式表在
文档中不可见。样式表
cssRules属性必须遵循以下步骤:
- 如果原点清除标志未设置,则引发SecurityError异常
- 返回表示CSS规则的只读实时CSSRuleList对象
在某些浏览器中,如果从不同的域加载样式表,
调用cssRules
会导致SecurityError
- 用户代理(默认)样式表在
文档中不可见。样式表
cssRules属性必须遵循以下步骤:
- 如果原点清除标志未设置,则引发SecurityError异常
- 返回表示CSS规则的只读实时CSSRuleList对象
如果需要获取和更改文档中加载的.css
文件,您可以请求在DevTools查看的文件,从文档中删除所有现有样式表,调整响应文本,将调整后的文本作为.css
附加到文档或
元素。如果需要获取和更改文档中加载的css
文件,可以请求在开发工具中查看的文件,从文档中删除所有现有样式表,对响应文本进行调整,将调整后的文本作为.css
附加到文档或
元素。在Firefox控制台中运行代码会导致安全错误:操作不安全
-可能是跨源问题?肯定是跨源问题。在chrome中工作正常。问题仍然存在-如何将所有样式表加载到一个页面中?如果没有高权限或不使用代理,则无法加载。现在,您可以测试您的运气,设置样式表的所有者节点的crossOrigin
,然后重新加载它,但我怀疑它在任何地方都能工作。正如我所说,如果您直接在firefox控制台中运行代码,就会出现错误-这让我相信这是一个跨源问题在firefox控制台中运行代码会导致安全性错误:操作不安全
-可能是跨源问题?肯定是跨源问题。在chrome中工作正常。问题仍然存在-如何将所有样式表加载到一个页面中?如果没有高权限或不使用代理,则无法加载。现在,您可以测试您的运气,设置样式表的所有者节点的crossOrigin
,然后重新加载它,但我怀疑它在任何地方都能工作。正如我所说,如果您直接在firefox控制台中运行代码,就会出现错误,这让我相信这是一个跨源问题,实际上它应该抛出一个安全错误,实际上它应该抛出一个安全错误