我需要使用insertRule
通过Javascript修改一些CSS。我还需要支持IE7-8,所以我需要一些方法来区分Javascript我是否应该使用insertRule
或addRule
(没有浏览器嗅探)。
这就是我正在尝试的,它不起作用:
var sheets = document.styleSheets
if(sheets.insertRule) {
alert("insert");
// insert
} else {
alert("add");
// add
}
是否有可能以及如何使其发挥作用?
修改
如果我在IE8中运行此操作,则会在页面object does not support this property or method
答案 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");
}