0

JS を介してスタイルシートにルールを追加し、そのルールを編集しようとしています。他の場所では正常に機能しますが、IE では機能しません。

IE でのスタイルシートとルールへのアクセスの違いについては知っています。既存のプロパティの変更にも違いがあるはずです。私の (IE のみ) の例を参照してください。

<style type="text/css" rel="stylesheet" id="tmp-style"></style>
<h3>Test</h3>
<script type="text/javascript">
    var sheet = document.styleSheets[0];
    sheet.addRule('h3', 'background-color: red', 0);
    console.log( sheet.rules[0].selectorText + ' = ' + sheet.rules[0].style['background-color'] );
    sheet.rules[0].style['background-color'] = 'blue';
    console.log( sheet.rules[0].selectorText + ' = ' + sheet.rules[0].style['background-color'] );
</script>

H3 は赤のままで、コンソールには次のように表示されます。

LOG: h3 = undefined 
LOG: h3 = blue
4

1 に答える 1

0

IE で JS を介してこの方法でスタイル プロパティにアクセスするには、キャメル ケース表記を使用してアクセスする必要があります。たとえば、次のようになります。

sheet.rules[0].style['backgroundColor'] = 'blue';
于 2013-01-29T21:42:56.990 に答える