2

insertRuleJavascript を介して一部の 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

私は Firefox で次のことをテストしました。使用するスタイルシートを指定する必要があります。

必要な方の参考になれば幸いです。

var sheets = document.styleSheets[0];   

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

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

このテスト実行で証明されているように、IE8 にはバグがないようです。

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

この問題は、コメントに置き換えたコードが未定義のメソッドを呼び出していることが原因である可能性があります。

于 2012-10-22T09:05:00.543 に答える