document.styleSheets[x].cssRules 为空

document.styleSheets[x].cssRules are null

当我检查网站时,
我看到来自 document.styleSheets[x].cssRules

的 cssRules

但是,对于此网站 whosebug.com,当我使用 Chrome 浏览器检查时,我看到 document.styleSheets,但 cssRules 为空。

这怎么可能?

那是因为样式表来自不同的域。某些浏览器(例如 Chrome)通过抛出安全错误或将来自不同域的 cssRulesownerRule 设置为 null 来实施严格的跨域策略......在你的情况下样式表来自 CDN

MDN 在 CSSStyleSheet 文档中引用了以下内容...

In some browsers, if a stylesheet is loaded from a different domain, calling cssRules results in SecurityError.

https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet

要尝试绕过此问题,您可以在 link 标记中添加 crossorigin="anonymous" 以防止错误。

更多信息在这里:

https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin

这将创建一个 potencial cors request 但服务器必须响应 Access-Control-Allow-Origin: *Access-Control-Allow-Origin: <authorized-domain>

您可以查看 here 了解如何将 CORS 支持添加到您的服务器。

有关 CORS 的更多信息,您可以阅读 this and this