Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript document.styleSheets不会检测所有样式表_Javascript_Html_Css - Fatal编程技术网

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控制台中运行代码,就会出现错误,这让我相信这是一个跨源问题,实际上它应该抛出一个安全错误,实际上它应该抛出一个安全错误