【问题标题】:Add a link stylesheet dynamically in the <head> [closed]在 <head> 中动态添加链接样式表 [关闭]
【发布时间】:2010-10-05 10:52:45
【问题描述】:

如何在文档头部添加链接样式表引用?

我找到了这段代码,但它不适用于所有浏览器,它使我的 IE7 崩溃:

var ss = document.createElement("link");
ss.type = "text/css";
ss.rel = "stylesheet";
ss.href = "style.css";
document.getElementsByTagName("head")[0].appendChild(ss);

谢谢

【问题讨论】:

  • hmm这个方法我以前用过,在IE7中一切顺利
  • 您的代码适用于我的 IE6 和 IE7。可能是页面的其他部分导致了问题吗?
  • 好的,我稍后会与同事确认三次,谢谢您的关心。
  • Tom 和其他人,我认为其他脚本可能会干扰,但没有警告,没有错误消息。如果是这种情况我该怎么办?删除这个问题?
  • 这种方法在 Firefox、IE 6、7 和 8 中对我来说效果很好

标签: javascript internet-explorer dom crash


【解决方案1】:

这是一个简单的交叉引用 javascript 错误。祝你有美好的一天。

【讨论】:

    【解决方案2】:

    Internet explorer 将支持 innerHTML,虽然它会添加回流,但这会起作用:

    var headHTML = document.getElementsByTagName('head')[0].innerHTML;
    headHTML    += '<link type="text/css" rel="stylesheet" href="style.css">';
    document.getElementsByTagName('head')[0].innerHTML = headHTML;
    

    【讨论】:

    • 有趣,你的代码只能在 Firefox 上工作。
    • 我还没有测试过,你的意思是说这在 Internet Explorer 中不起作用?
    • 啊。太糟糕了,我不应该为我的答案投票。
    • 它适用于 Firefox,这仍然是一个很好的答案。
    • 我的理论没有任何证据,但我认为修改文档的 HEAD 元素的 innerHTML 不是一个好主意。
    【解决方案3】:

    在 IE 中,你可以试试 createStyleSheet 方法吗?这需要 URL 作为参数。我不知道 FF/chrome 中是否有等价物..

    --森提尔

    【讨论】:

      猜你喜欢
      • 2013-04-22
      • 2019-08-02
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      相关资源
      最近更新 更多