IE 8 and 7 error when adding stylesheet dynamically

I have the following code

var style = document.createElement('style'); style.setAttribute("type", "text/css"); if (style.textContent) { // FF, Safari style.textContent = this.arg.css; } else { style.innerHTML = this.arg.css;// FF, IE } document.getElementsByTagName('head')[0].appendChild(style); 

This works well in all browsers (also IE 9), but for IE7 and IE8 I get the following error

SCRIPT600: Unknown runtime error

The error indicates a line

  style.innerHTML = this.arg.css;// FF, IE 

What's wrong?

+6
source share
1 answer

you can try this way

 var style = document.createElement('style'); var text = this.arg.css; style.setAttribute("type", "text/css"); if (style.styleSheet) { // for IE style.styleSheet.cssText = text; } else { // others var textnode = document.createTextNode(text); style.appendChild(textnode); } var h = document.getElementsByTagName('head')[0]; h.appendChild(style); 
+9
source

Source: https://habr.com/ru/post/885634/


All Articles