代码之家  ›  专栏  ›  技术社区  ›  David Hellsing

在IE7的动态样式表中添加@import语句+

  •  3
  • David Hellsing  · 技术社区  · 15 年前

    我在为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 ,但它不会应用导入的样式表。这是错误还是限制?

    1 回复  |  直到 15 年前
        1
  •  2
  •   melhosseiny    15 年前

    许多旧浏览器无法处理@import指令的不同形式,这可以用来隐藏CSS。检查 http://www.w3development.de/css/hide_css_from_browsers/import/ 详情。

    这个 @import 指令必须在样式表中位于第一位,否则它们将被忽略。但是IE并没有忽略放错地方 @进口 指令。

    编辑 addImport method 用于在IE中注入样式表。