Обновление стиля CSS в IE после динамического удаления ссылки стиля - PullRequest
2 голосов
/ 28 апреля 2010

У меня проблема с динамическим манипулированием стилем в IE7 (IE8 в порядке). Используя javascript мне нужно добавить и удалить узел с определением файла CSS.

Добавление и удаление узла как потомка прекрасно работает в Firefox. К сожалению, после удаления его в IE, хотя тег удаляется правильно, стиль страницы не обновляется.

В приведенном ниже примере простой CSS (делает фон зеленым) добавляется и удаляется. После удаления в FF фон становится по умолчанию, но в IE остается зеленым.

index.html

<html>
<head>
</head>
<script language="javascript" type="text/javascript">

var node;

function append(){
    var headID = document.getElementsByTagName("head")[0];       
    node = document.createElement('link');
    node.type = 'text/css';
    node.rel = 'stylesheet';
    node.href = "s.css";
    node.media = 'screen';
    headID.appendChild(node);
}

function remove(){  
    var headID = document.getElementsByTagName("head")[0];      
    headID.removeChild(node);
}
</script>
<body>

<div onClick="append();">
add
</div>

<div onClick="remove();">
remove
</div>

</body>
</html>

И таблица стилей:

s.css
body { background-color:#00CC33  }

Вот живой пример: http://rlab.pl/dynamic-style/

Есть ли способ заставить его работать?

1 Ответ

1 голос
/ 18 июня 2010

Rybz, я лично настроил бы «исходную» таблицу стилей для возврата к ней (также потому, что это помогает сбросить браузеры на «мои» желаемые начальные настройки, а не настройки по умолчанию) и при удалении таблицы стилей из DOM Я бы вставил тот, чтобы сбросить до. Я не знаю, сработает ли это для того, что вы пытаетесь сделать, но это сработало для меня в аналогичной ситуации, и если я правильно помню, у меня была та же проблема, что и у вас, и это исправило ее.

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