2

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

4

2 回答 2

1

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

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

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

于 2012-10-22T09:05:00.543 回答
1

我在 Firefox 上测试了以下内容,它有效,只给了我 insertRule。您需要指定要使用的样式表。

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

var sheets = document.styleSheets[0];   

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

if (sheets.insertRule) {
    alert("insertRule");
}
于 2013-04-03T05:31:59.893 回答