我可以测试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没有发出警报的原因。现在它起作用了。