我需要在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中实现相同的目标?
答案 0 :(得分: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; }'));
}
希望,它现在运行! :)