Добавление оператора @import в динамическую таблицу стилей для IE7 + - PullRequest
3 голосов
/ 13 июля 2010

У меня проблема с добавлением динамического элемента стиля с помощью операторов @import для IE. Попробуйте это:

var string = '@import url(test.css)';
var style = document.createElement('style');

if (style.styleSheet) { // IE
    style.styleSheet.cssText = string;
} else {
    var cssText = document.createTextNode(string);
    style.appendChild(cssText);
}

document.getElementsByTagName('head')[0].appendChild(style);

Это работает для FF / Chrome, но не для IE. Кажется, он распознает style.styleSheets.imports, но не будет применять импортированную таблицу стилей. Это ошибка или ограничение?

1 Ответ

2 голосов
/ 13 июля 2010

Многие старые браузеры не могут обрабатывать различные формы директивы @import, это можно использовать, чтобы скрыть css от них. Проверьте http://www.w3development.de/css/hide_css_from_browsers/import/ для деталей.

Директивы @import должны стоять на первом месте в таблице стилей, иначе они будут игнорироваться. однако IE не игнорирует неуместные директивы @import.

Редактировать : См. Метод addImport для ввода таблиц стилей в IE.

...