在 <head> 中动态添加链接样式表

IT技术 javascript internet-explorer dom crash
2021-02-27 13:21:56

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

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

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

谢谢

3个回答

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 上工作。
2021-04-22 13:21:56
我还没有测试过,你的意思是说这在 Internet Explorer 中不起作用?
2021-04-22 13:21:56
它适用于 Firefox,这仍然是一个很好的答案。
2021-05-02 13:21:56
啊。那很糟糕,我不应该为我的答案投票。
2021-05-05 13:21:56
我的理论没有任何证据,但我认为修改文档 HEAD 元素的 innerHTML 不是一个好主意。
2021-05-15 13:21:56

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

--森蒂尔

那是一个简单的交叉引用 javascript 错误。祝你今天过得愉快。