style.styleSheet.cssText在IE 9上不起作用

时间:2019-04-10 07:32:14

标签: javascript jquery internet-explorer

类似于以下功能的最佳方法是什么

可在所有浏览器中使用,特别适用于IE中的任何版本。

var head  = document.head || document.getElementsByTagName('head')[0];
var style = document.createElement('style');
css = "some style here"
style.type = 'text/css';

if (style.styleSheet){
  #Problem here: This is works for IE8 and below BUT not in higher version.
  style.styleSheet.cssText = css;
} else {
  style.appendChild(document.createTextNode(css));
}

head.appendChild(style);

1 个答案:

答案 0 :(得分:1)

如果没有css.styleSheet对象,也许尝试将css直接加载到标题中。

没有时间进行测试,但是我认为它应该可以工作。如果您有任何疑问,请询问。 :)

<script type="text/javascript">
function appendStyle(styles) {
  var css = document.createElement('style');
  css.type = 'text/css';

  if (css.styleSheet) css.styleSheet.cssText = styles;
  else css.appendChild(document.createTextNode(styles));

  document.getElementsByTagName("head")[0].appendChild(css);
}

var styles = '#header { color: white }';

window.onload = function() { appendStyle(styles) };
</script>