すべてのグローバルスタイルシートルールを繰り返し、それらを配列/オブジェクトに格納するこのコードを作成しました。後でこの辞書のようなオブジェクトを使用して、個々の要素にスタイルを設定するのではなく、グローバルルールを変更します。
次のコードはIE8で壊れますが、Firefox3.7とChrome4では正常に機能します。
var allRules;
$(function() {
var fileRules;
allRules = [];
$.each(document.styleSheets, function() {
// get rules for any browser (IE uses rules array)
fileRules = this.cssRules || this.rules;
$.each(fileRules, function() {
allRules[this.selectorText] = this;
});
});
});
Invalid procedure call or argument
エラーが発生します。デバッグしようとすると、このコードはルールを使用して2つのCSSスタイルシートファイルを正常に反復しますが、2番目の反復が実行されると失敗します。
このコードにエラーが見つからないようです。