尝试使用javascript将CSS附加到HTML页面的头部

尝试使用javascript将CSS附加到HTML页面的头部,javascript,html,css,Javascript,Html,Css,我正在尝试将CSS样式附加到HTML页面的头部,如下所示 var HEAD = document.getElementsByTagName("head")[0]; s = document.createElement('Style'); s.id = 'cssp'; s.type = 'text/css'; s.innerHTML = ecks.cssp; HEAD.appendChild(s); 但是,ecks.cssp中的CSS永远不会出现在HTML页面中。我做错了什么 仅供参考,我正在使

我正在尝试将CSS样式附加到HTML页面的头部,如下所示

var HEAD = document.getElementsByTagName("head")[0];
s = document.createElement('Style');
s.id = 'cssp';
s.type = 'text/css';
s.innerHTML = ecks.cssp;
HEAD.appendChild(s);
但是,
ecks.cssp
中的CSS永远不会出现在HTML页面中。我做错了什么


仅供参考,我正在使用chrome进行测试。

这是一个基于谷歌的技巧,适合您:

function loadcss(filename){
  var fileref=document.createElement("link")
  fileref.setAttribute("rel", "stylesheet")
  fileref.setAttribute("type", "text/css")
  fileref.setAttribute("href", filename)
  document.getElementsByTagName("head")[0].appendChild(fileref)
}

loadcss("mystyle.css", "css") //dynamically load and add this .css file
该链接还包含加载JS的源代码


添加样式元素有多种方法,但与添加链接不同,它们依赖于浏览器

字符串必须是有效的css

function addStyle(str){
    var el= document.createElement('STYLE');
    el.type= 'text/css';
    el.media= 'screen';
    if(el.styleSheet){
        // IE
        el.styleSheet.cssText= str;
    }
    else{
        // Most browsers
        el.appendChild(document.createTextNode(str));
    }
    document.getElementsByTagName('HEAD')[0].appendChild(el);
}

ecks.cssp包含什么?ecks是
HTMLStyleElement
,ecks.cssp是
CSS
本身。好的。。。纳文是对的。。。什么是ecks?它包含什么?但是,您可以在标记中插入src=“file.css”,以便创建链接到外部文件的样式表?javascript有权访问内容吗?例如,如果只是尝试执行警报(ecks.cssp),请不要使用
setAttribute
来设置这些属性,直接使用DOM元素的属性,或者在某些情况下会让IE大哭。我没有检查导航器兼容性,但感谢您提供的提示!)