【发布时间】:2010-10-13 09:03:01
【问题描述】:
有没有办法将 javascript 文件中的字符串中的 css 添加到带有 javascript 的文档的头部?
假设我们有一个网页,它有一个灯箱脚本,这个脚本需要一个 css 文件才能运行。
现在使用<link> 添加这个 css 文件将使 css 文件即使对于没有启用 js 的人也能下载。
我知道我可以使用脚本动态加载 css 文件,但这也意味着会有 2 个 http 请求,并且在文件中几乎没有 css 的情况下,我发现这效率低下。
所以我在想,如果你可以将你在 css 文件中的 css 放入脚本中,让脚本解析 css 并将其添加到头部,或者更好的是让脚本添加css 直接进入文档的<head>。
但是我在网上没有找到任何暗示这是可能的,那么是否可以用js将css添加到头部?
编辑 + 解决方案:
我编辑了 roryf 的答案以跨浏览器工作(IE5 除外)
Javascript:
function addcss(css){
var head = document.getElementsByTagName('head')[0];
var s = document.createElement('style');
s.setAttribute('type', 'text/css');
if (s.styleSheet) { // IE
s.styleSheet.cssText = css;
} else { // the world
s.appendChild(document.createTextNode(css));
}
head.appendChild(s);
}
【问题讨论】:
-
看看下面的链接..它解释了关于你的问题的每一个小细节......并且它被恰当地命名为Totally Pwn CSS with Javascript
标签: javascript html css