一尘不染

如何使用Javascript创建<style>标签?

html

我正在寻找一种<style>使用JavaScript 将标记插入HTML页面的方法。

到目前为止,我发现的最好方法是:

var divNode = document.createElement("div");
divNode.innerHTML = "<br><style>h1 { background: red; }</style>";
document.body.appendChild(divNode);

这在Firefox,Opera和Internet Explorer中有效,但在Google Chrome中不起作用。<br>IE的前面也有点难看。

有人知道创建<style>标签的方法吗

更好

使用Chrome吗?

或许

  1. 这是我应该避免的非标准事情

  2. 三种运行良好的浏览器都很棒,到底谁在使用Chrome?


阅读 915

收藏
2020-05-14

共1个答案

一尘不染

尝试将style元素添加到head而不是body

这已在IE(7-9),Firefox,Opera和Chrome中进行了测试:

var css = 'h1 { background: red; }',
    head = document.head || document.getElementsByTagName('head')[0],
    style = document.createElement('style');

head.appendChild(style);

style.type = 'text/css';
if (style.styleSheet){
  // This is required for IE8 and below.
  style.styleSheet.cssText = css;
} else {
  style.appendChild(document.createTextNode(css));
}
2020-05-14