在 <head> 中动态添加链接样式表 [关闭]

Posted

技术标签:

【中文标题】在 <head> 中动态添加链接样式表 [关闭]【英文标题】:Add a link stylesheet dynamically in the <head> [closed] 【发布时间】: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 中对我来说效果很好 【参考方案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 中是否有等价物..

--森提尔

【讨论】:

以上是关于在 <head> 中动态添加链接样式表 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何插入样式表

2016.11.19

javascript 动态样式添加

链接多个样式表

请详细说明HTML文件使用css样式的几种方法?

使用 JQuery 从 head 标签中动态删除样式