coding-style - 在 IE8 中修改 <style> 元素的 innerHTML

标签 coding-style internet-explorer-8 innerhtml

我正在创建一个样式元素,我需要将一些 CSS 放入其中。以下代码在 Chrome、Safari 和 FF 中有效,但在 IE8 中失败:

var styleElement = document.createElement("style");

styleElement.type = "text/css";

styleElement.innerHTML = "body{background:red}";

document.head.appendChild(styleElement);

在 IE8 中,代码在涉及到 innerHTML 部分时失败。我试过这样做:
var inner = document.createTextNode("body{background:red}");

styleElement.appendChild(inner);

但这也会因“对方法或属性访问的意外调用”而失败。
我正在寻找解决方法或修复方法。

最佳答案

使用 .styleSheet.cssText
注意:与修改单个元素样式相比,这在 IE8 中似乎真的很慢。

有没有更快的方法在 IE 中动态修改样式表?

这在 IE8 中很慢:

styleElement.styleSheet.cssText = "body{background:red}";

这在 IE8 中也很慢(假设要修改的样式对象是头部的第一个样式元素):
document.styleSheets[0].cssText = "body{background:red}";

这在 IE8 中很快:
document.body.style.background = "red";

关于coding-style - 在 IE8 中修改 <style> 元素的 innerHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6631871/

相关文章:

visual-studio - 将Visual Studio的 'Code Style settings'导出为.editorconfig

language-agnostic - 只要不损害可读性,简单的三元大小写就可以在程序流程中使用吗?

javascript - 获取不在另一个标签内的元素的 InnerHTML

css - 单行与多行 CSS 格式

c++ - 在 C++ 中放置 const 的最佳位置在哪里?

javascript - 既然 $.browser 已被弃用,我如何使用 jQuery 检测 IE 8?

css - ie7/ie8 中的多个背景图像问题

javascript - 如何从 IE8 缓存中清除 Javascript?

php - 将php结果插入到没有php的html文档中

javascript - 事件上的 Flash 元素