我可以测试javascript addRule是否支持在addRule/insertRule之间切换吗?

我可以测试javascript addRule是否支持在addRule/insertRule之间切换吗?,javascript,css,internet-explorer,methods,Javascript,Css,Internet Explorer,Methods,我需要使用insertRule通过Javascript修改一些CSS。我还需要支持IE7-8,所以我需要一些方法在Javascript中区分我应该使用insertRule还是addRule(不需要浏览器嗅探) 这是我正在尝试的,但它不起作用: var sheets = document.styleSheets if(sheets.insertRule) { alert("insert"); // insert } else { alert("add");

我需要使用
insertRule
通过Javascript修改一些CSS。我还需要支持IE7-8,所以我需要一些方法在Javascript中区分我应该使用
insertRule
还是
addRule
(不需要浏览器嗅探)

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

var sheets = document.styleSheets   
if(sheets.insertRule) {
    alert("insert");
    // insert 
} else {
    alert("add");
    // add
}
你知道这是否可行,以及如何让它发挥作用吗

编辑:

如果我在IE8中运行此操作,我会在页面上看到一个错误,
对象不支持此属性或方法

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

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

问题可能是因为您用未定义的comments调用方法替换的代码。

我在Firefox上测试了以下内容,它成功了,只提供了insertRule。您需要指定要使用的样式表

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

var sheets = document.styleSheets[0];   

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

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

当您尝试此操作时会发生什么情况?IE8抱怨页面上有错误。如果我省略了这个脚本,页面上就不会有错误。谢谢。编辑。我的问题没问题。答案是正确的。请重新添加,以便我检查。
http://jsfiddle.net/4jPP5/show/
IE8.yah中没有bug。我没有注释掉我最初的
insertRule
。。。这就是为什么错误仍然出现并且addRule没有发出警报的原因。现在它起作用了。