Добавление тега стиля на страницу - PullRequest
0 голосов
/ 15 апреля 2011

Я пытаюсь добавить некоторые стили на страницу, используя javascript

var style = document.createElement("style"),
style.innerHTML = ".firstChildTest div:first-child {width: 2px;}";

Но ie6-8 выдают ошибку при попытке использовать innerHTML для элемента стиля.Я также получаю ту же ошибку, используя

 style.append(document.createTextNode(".firstChildTest div:first-child {width: 2px;}"));

Как вставить стили в элемент стиля в ie?

Ответы [ 2 ]

0 голосов
/ 15 апреля 2011

IE до # 9 не может использовать childNodes для добавления текста в элемент стиля (или сценария или опции), а стили должны быть в заголовке HTML-документа.

function addStyle(str){
    var el= document.createElement('style');
    if(el.styleSheet) el.styleSheet.cssText= str;
    else{
        el.appendChild(document.createTextNode(str));
    }
    return document.getElementsByTagName('head')[0].appendChild(el);
}
0 голосов
/ 15 апреля 2011

См. Ответ здесь: Как скопировать элемент встроенного стиля в IE?

function copy_style(style_text) {    
    var tmp_div = document.createElement('div');
    tmp_div.innerHTML = '<p>x</p><style type="text/css">' + style_text + '</style>';

    return tmp_div.getElementsByTagName('style')[0];
}

Обратите внимание, что вам нужен тег <p> во innerHTML tmp_div.Без этого IE не принимает элемент стиля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...