我无法用“!重要”规则注入样式

我试图用这个代码注入一个样式:

document.body.style.color='green!important'; 

根据CSS级联引用 ,通过应用!important规则,我可以胜过起源和特异性。

我试图用Firefox Firebug注入到www.google.com,但是没有运气。

如何用!important规则注入前景色?

根据规范,如果你想设置优先级,而不仅仅是值,你必须使用setProperty ,如下所示:

 document.body.style.setProperty ("color", "green", "important"); 
 element.style.cssText = 'color:green !important'; 

应该为你工作。

只使用这个:

 document.body.style.color="green"; 

你不必以这种方式使用重要的东西。 无论如何,致命指出,这不会工作,当直接重要的规则在CSS样式表中,你需要重写。

那样的话,你必须dynamic地创build样式表并在头部添加它:

 function addNewStyle(newStyle) { var styleElement = document.getElementById('styles_js'); if (!styleElement) { styleElement = document.createElement('style'); styleElement.type = 'text/css'; styleElement.id = 'styles_js'; document.getElementsByTagName('head')[0].appendChild(styleElement); } styleElement.appendChild(document.createTextNode(newStyle)); } 

然后你可以像这样更新风格

 addNewStyle('body {color:green !important;}') 

我想说的是,由于代码中的任何错误(空间除外),可能不会有太多的工作,但更多的是因为修改body标签不是一个足够具体的元素,类,或者你需要创build什么影响。

例如,search结果的页面文本有一个“st”类。 所有的search结果都被封装在一个<li>标签中。

所以一些这样的代码可能看起来像这样:

 var arr = document.getElementsByClassName('st'); for(i=0; i<arr.length; i++){ arr[i].style.color="green"; } 

style.cssText是添加!important的唯一方法。

 <script> document.body.style.cssText='color: red !important;' </script> 

所有的答案是伟大的,但他们都假设属性的valuefixed ,如果不是

看看我的解决scheme

 this.style.setProperty("color", $(this).css('color'), "important"); 

而不是hand writing价值,我得到它使用jquery $(this).css('attr')