Javascript insertRule不插入样式元素

Javascript insertRule不插入样式元素,javascript,stylesheet,Javascript,Stylesheet,我试图在HTML中添加一个新的样式元素。我目前正在使用这篇博文中的代码片段 当它在代码笔中运行时,我看不到样式。注入了样式元素,但未注入样式规则。也没有抛出错误 获取样式表对象时,我没有看到insertRule或addRule属性 函数addCSSRule(表、选择器、规则、索引){ 如果(“插入规则”在工作表中){ sheet.insertRule(选择器+“{”+规则+“}”,索引); }else if(表格中的“添加规则”){ sheet.addRule(选择器、规则、索引); } }

我试图在HTML中添加一个新的样式元素。我目前正在使用这篇博文中的代码片段

当它在代码笔中运行时,我看不到样式。注入了
样式
元素,但未注入样式规则。也没有抛出错误

获取样式表对象时,我没有看到
insertRule
addRule
属性

函数addCSSRule(表、选择器、规则、索引){
如果(“插入规则”在工作表中){
sheet.insertRule(选择器+“{”+规则+“}”,索引);
}else if(表格中的“添加规则”){
sheet.addRule(选择器、规则、索引);
}
}
var style=document.createElement('style');
//网络工具包黑客:(
appendChild(document.createTextNode(“”));
//将元素添加到页面中
document.head.appendChild(样式);
//样式表规则
addCSSRule(样式表,.red,,“背景:红色;”,1);

这是因为您传递的
索引超限

对于
insertRule
,您不需要通过索引

 if("insertRule" in sheet) {
        sheet.insertRule(selector + "{" + rules + "}");
否则通过
0

addCSSRule(style.sheet, '.red', "background: red;", 0);

函数addCSSRule(表、选择器、规则、索引){
如果(“插入规则”在工作表中){
sheet.insertRule(选择器+“{”+规则+“}”,索引);
}else if(表格中的“添加规则”){
sheet.addRule(选择器、规则、索引);
}
}
var style=document.createElement('style');
//网络工具包黑客:(
appendChild(document.createTextNode(“”));
//将元素添加到页面中
document.head.appendChild(样式);
//样式表规则
addCSSRule(样式表,'.red',“背景:红色;”,0);

根据insertRule()的更新文档,现在需要正式传递索引参数。您不能离开它


但是生成的
元素仍然是空的。为什么它是空的?@trusktr在检查样式元素:元素-属性选项卡时,带有插入规则的工作表属性显示在Chrome的开发者工具中。@gabore谢谢。:)我本以为它会更新样式的CSS文本内容,但我猜性能成本并不理想。但这意味着如果一段代码依赖于文本内容,而另一段代码不依赖于文本内容,那么它们可能会不同步,并且可能会出现错误。