Javascript 以编程方式修改外部样式表中的样式

Javascript 以编程方式修改外部样式表中的样式,javascript,css,content-security-policy,Javascript,Css,Content Security Policy,场景:您将内容发布到内容管理系统(想想一些常见的博客服务)。您可以添加自己的样式表和脚本,但页面的大部分内容不在您的控制之下,您无法对其进行更改 在CSS中,你有一个规则,比如 ul { color: red; } 然而,该服务安装了一个“基本”样式表,即 ul.fancy { color: green !important; } 现在,如果您希望所有的uls都是红色的,您必须用自己的手动覆盖 ul.fancy { color: red !important; } 您可以继续这样做作为最后

场景:您将内容发布到内容管理系统(想想一些常见的博客服务)。您可以添加自己的样式表和脚本,但页面的大部分内容不在您的控制之下,您无法对其进行更改

在CSS中,你有一个规则,比如

ul { color: red; }
然而,该服务安装了一个“基本”样式表,即

ul.fancy { color: green !important; }
现在,如果您希望所有的
ul
s都是红色的,您必须用自己的手动覆盖

ul.fancy { color: red !important; }
您可以继续这样做作为最后的手段,但它会得到一个维护噩梦后不久。只要删除这些规则就容易多了!虽然您可以将他们的样式表复制到您的个人存储中,删除恼人的部分并重写
style
标记以指向您的新样式表(使用JS),但如果他们将来更新他们的基本样式表,这将是有问题的,因为更改不会继续进行

几乎幸运的是,我们有API,您可以使用它删除违规规则。除了基本样式表是从与站点其他部分不同的域加载的,因此(在Firefox和Chrome中)您无法使用API访问该样式表的规则。(它适用于嵌入式样式表,但不适用于来自不同域的样式表。)

问题:是否有任何方法可以使用Javascript删除或修改从不同域加载的CSS样式