我可以测试javascript addRule的支持,以便在addRule / insertRule之间切换吗?

时间:2012-10-22 08:47:36

标签: javascript css internet-explorer methods

我需要使用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

上出现错误

2 个答案:

答案 0 :(得分:1)

IE8中似乎没有错误,this测试运行证明了这一点。

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

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

答案 1 :(得分:1)

我在Firefox上测试了以下内容并且它工作正常,只给我insertRule。您需要指定要使用的样式表。

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

var sheets = document.styleSheets[0];   

if (sheets.addRule) {
    alert("addRule");
}

if (sheets.insertRule) {
    alert("insertRule");
}