Изменение innerHTML элемента ‹style› в IE8

Я создаю элемент стиля, и мне нужно добавить в него немного 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);

Но это также не удается с «Неожиданным вызовом метода или доступа к свойству». Я ищу обходной путь или исправление.


person TheFuzzball    schedule 09.07.2011    source источник


Ответы (2)


Используйте 1_

ПРИМЕЧАНИЕ: это кажется ДЕЙСТВИТЕЛЬНО медленным в IE8 по сравнению с изменением стиля отдельных элементов.

Есть ли более быстрый способ динамического изменения таблиц стилей в IE?

Это медленно в IE8:

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

Это также медленно в IE8 (предполагается, что изменяемый объект стиля является 1-м элементом стиля в голове):

document.styleSheets[0].cssText = "body{background:red}";

Это быстро в IE8:

document.body.style.background = "red";
person Kent Fuller    schedule 20.08.2011

Попробуйте использовать styleElement.innerText

person c-smile    schedule 09.07.2011