javascript – 无法在Google Chrome中访问外部CSS样式

前端之家收集整理的这篇文章主要介绍了javascript – 无法在Google Chrome中访问外部CSS样式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

所以我有以下代码

所以基本上这个代码适用于IE和Mozilla,但不适用于Chrome.实际上,当你运行document.styleSheets [0] .cssRules时,它返回一个CSSRulesList对象(在IE和Mozilla中),但在Chrome中它返回null.顺便说一句,对于嵌入式样式,这个对象似乎甚至可以在Chrome中运行.

那么这个功能在Chrome中实际上不可用吗?如果是这样,是否有Chrome替代方案可让您使用Javascript处理外部样式表/文件

最佳答案
替代方案

document.styleSheets[0].rules[0].style.color = "blue";

代码段可能有助于查看支持哪个集合.建议首先使用cssRules集合,如果不支持,则使用规则集合.

if (document.styleSheets[0].cssRules)
    document.styleSheets[0].cssRules[0].style.color = "blue";
else if (document.styleSheets[0].rules)
    document.styleSheets[0].rules[0].style.color = "blue";

编辑

下面的代码段在IE8,IE11,Firefox,Chrome,Safari和Opera上运行正常;在我的本地和生产服务器上;它也适用于jsbin;但它不适用于jsfiddle – 在任何上述浏览器上!

如果我将样式部分更改为此

上面的代码段仅适用于IE11.因此,它似乎是一个跨域策略问题,因为Firefox说同源策略不允许在http://external-server/styles.css上读取远程资源.这可以通过将资源移动到同一域或启用CORS来解决.

也许以下代码片段可以解决问题