2

我需要在 IE8 中使用 JavaScript 动态创建一个 CSS 样式表类。

我为其他浏览器使用了以下代码:

var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = '.cssClass { color: #F00; }';
document.getElementsByTagName('head')[0].appendChild(style);

它在除 IE8 之外的所有浏览器中都能正常工作。如何在 IE8 中实现相同的功能?

4

1 回答 1

3

根据MSDN

innerHTML 属性在 col、colGroup、frameSet、html、head、style、table、tBody、tFoot、tHead、title 和 tr 对象上是只读的。

所以,试着用innerText这些类来写。

更新

您可以使用:

style.styleSheet.cssText = '.cssClass { color: #F00; }';

或者做一个测试:

if (style.styleSheet){
    style.styleSheet.cssText = '.cssClass { color: #F00; }';
} else {
    style.appendChild(document.createTextNode('.cssClass { color: #F00; }'));
}

希望,它现在运行!:)

于 2015-05-07T11:24:20.593 回答