Я загружаю строку через AJAX, которая выглядит как
<style>[some definitions]</style>
<h1>Lots of Markup</h1>
<p>follows here</p>
При использовании Webkit / Gecko все работает как положено - разметка вставлена, стили применены. В IE (8) определения стилей игнорируются. На самом деле, если вы используете инструменты разработчика, они ушли.
В этой JS-скрипке видно, что она не работает: http://jsfiddle.net/J4Yzr/
Кроме того, я видел ту хитрость, что вы создаете временный DOM-объект, устанавливаете его innerHTML для вашей разметки и извлекаете вашу разметку как DOM-объекты из вашего временного элемента. Это не работает с тегами стиля (если я все сделал правильно, я использую prototypeJS):
var text = '<style>h1{color:red;}</style> style added',
el = new Element('div').update(text);
console.log(el.firstChild);
//is a HTMLStyleElement in Webkit but a [object Text] in IE
У кого-нибудь есть предложения, как правильно применять <style>
в IE, если вы получаете его из такой строки?