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指令必须在样式表中首先出现,否则它们将被忽略。但是 IE 不会忽略放错位置@import的指令。

编辑:查看在 IE 中注入样式表的addImport 方法

于 2010-07-13T13:48:01.333 回答