对于添加CSS,是否有一种与GreaseMonkey的GM_addStyle方法相当的方法
在GreaseMonkey中,您可以向多个元素添加一组CSS属性,如下所示:
GM_addStyle(“主体{颜色:白色;背景色:黑色;}img{边框:0;}”);
要在TamperMonkey中执行等效操作,我目前必须执行以下操作:
函数addGlobalStyle(css){
var头、样式;
head=document.getElementsByTagName(’head’)[0];
如果(!head){return;}
style=document.createElement(’style’);
style.type=’text/css’;
style.innerHTML=css;
头。附属物(样式);
}
addGlobalStyle(’主体{颜色:白色;背景颜色:黑色;}’);
这是可行的,但是是否有一个内置的GM_addStyle等效的TamperMonkey,使我不必在每个脚本上重复这一点
版本4.0或+,2018年更新
引用错误:未定义GM_addStyle
您需要创建自己的GM_addStyle函数,如下所示:
/==UserScript==
//@name示例
//@description userscript和GM_addStyle方法。
//==/UserScript==
函数GM_addStyle(css){
const style=document.getElementById(“GM_addStyleBy8626”)| |(函数(){
const style=document.createElement('style');
style.type='text/css';
style.id=“GM_addStyleBy8626”;
document.head.appendChild(样式);
回归风格;
})();
const sheet=style.sheet;
sheet.insertRule(css,(sheet.rules | | | sheet.cssRules | |[])长度);
}
//演示:
GM_addStyle(“p{color:red;}”);
GM_addStyle(“p{文本装饰:下划线;}”);
document.body.innerHTML=“<;p>;我使用了GM\U addStyle<;/p>;<;pre>;<;/pre>;”;
const sheet=document.getElementById(“GM_addStyleBy8626”).sheet,
规则=(sheet.rules | | sheet.cssRules);
for(设i=0;i<;rules.length;i++)
document.querySelector(“pre”).innerHTML+=规则[i].cssText+“\n”
不赞成
如果GM\u addStyle(…)不起作用,请检查是否有@grant GM\u addStyle标题
像这样:
/==UserScript==
//@name示例
//@description请参阅带有授权标头的UserScript。
//@grant GM_addStyle
//==/UserScript==
GM_addStyle(“主体{颜色:白色;背景色:黑色;}img{边框:0;}”);