Chrome中的cssRules/rules为null

art*_*ave 26 css google-chrome cross-domain google-chrome-extension

我的chrome扩展程序需要修改用户页面上的某些css规则.document.styleSheets仅通过访问样式可以访问从同一域中链接的样式.document.styleSheets数组的其他元素已cssRules/rules设置为null.

为什么跨域政策适用于此?无论其来源如何,都会使用样式,那么重点是什么?以及如何解决这个问题?


编辑:

我需要修改用户css规则(而不是简单地添加我自己的规则)的原因是我需要保护扩展注入的自定义元素不受*规则的影响.看到这个问题的细节

ser*_*erg 6

与常规JavaScript相比,内容脚本没有任何跨域权限,因此任何限制都会被延续.参见相关问题#1,问题#2.

您可以在清单中注入自己的CSS样式:

"content_scripts": [
    {
      "matches": ["http://www.google.com/*"],
      "css": ["mystyles.css"]
    }
]
Run Code Online (Sandbox Code Playgroud)

您可以尝试通过定义具有更高特异性的规则来覆盖原始样式.

您还可以通过javascript 调整具体的元素样式:

document.getElementById("id").style.property="value";
Run Code Online (Sandbox Code Playgroud)