3

IEの@importステートメントで動的スタイル要素を追加する際に問題が発生しました。これを試して:

var string = '@import url(test.css)';
var style = document.createElement('style');

if (style.styleSheet) { // IE
    style.styleSheet.cssText = string;
} else {
    var cssText = document.createTextNode(string);
    style.appendChild(cssText);
}

document.getElementsByTagName('head')[0].appendChild(style);

これはFF/Chromeで機能しますが、IEでは機能しません。認識しているようですstyle.styleSheets.importsが、インポートしたスタイルシートは適用されません。これはバグですか、それとも制限ですか?

4

1 に答える 1

2

古いブラウザーの多くは、さまざまな形式の @import ディレクティブを処理できません。これを使用して、それらから css を隠すことができます。詳細については、 http://www.w3development.de/css/hide_css_from_browsers/import/を確認してください。

@importディレクティブは、スタイル シートで最初に指定する必要があります。そうしないと、無視されます。@importただし、IE は間違ったディレクティブを無視しません。

編集: IE にスタイル シートを挿入するためのaddImport メソッドを参照してください。

于 2010-07-13T13:48:01.333 に答える