我可以测试支持JavaScript Addrule以在Addrule/Insertrule之间切换的支持



我需要使用insertRule通过JavaScript修改某些CSS。我还需要支持IE7-8,因此我需要某种方法来区分JavaScript,无论我是否应该使用insertRuleaddRule(无需浏览器嗅探)。

这是我正在尝试的,它不起作用:

var sheets = document.styleSheets   
if(sheets.insertRule) {
    alert("insert");
    // insert 
} else {
    alert("add");
    // add
}

任何想法是否可能以及如何使其工作?

编辑:
如果我在IE8中运行此操作,则在页面object does not support this property or method

上会出现错误

IE8中似乎没有错误,这是该测试运行所证明的。

var sheets = document.styleSheets   
if(sheets.insertRule) {
    alert("insert");
    // insert
} else {
    alert("add");
    // add
}

问题可能是由于您已替换为未定义的注释调用方法的代码。

我在firefox上测试了以下内容,它起作用了,只给了我insertrule。您需要指定要使用的样式表。

希望这对需要它的人有帮助。

var sheets = document.styleSheets[0];   
if (sheets.addRule) {
    alert("addRule");
}
if (sheets.insertRule) {
    alert("insertRule");
}

最新更新