Представьте себе веб-страницу, которая позволяет пользователям отображать скрытый элемент, используя javascript для изменения CSS стиля CSS во время выполнения.
После своего решения (которое включает в себя изменение таблицы стилей) пользователь использует функции печати своего браузера.
Похоже, Internet Explorer не учитывает изменения, внесенные в таблицу стилей ранее во время печати , если исходное определение CSS находится во внешнем файле.
В других браузерах все работает как положено.
Пожалуйста, посмотрите на пример ниже, который меняет класс стиля с его начального определения display:none
на display:inline
во время выполнения, поэтому элемент будет отображаться.
Но при печати этой страницы элемент остается скрытым в Internet Explorer (протестировано с IE 6,7,8).
У вас есть решение или обходной путь?
Минималистичный пример (файл html):
<html><head>
<LINK rel="stylesheet" type="text/css" href="minimal.css">
</head><body onload="displayCol();">
<script>
function displayCol()
{
var myrules;
if( document.styleSheets[0].cssRules ) {
myrules = document.styleSheets[0].cssRules;
} else {
if ( document.styleSheets[0].rules ) {
myrules = document.styleSheets[0].rules;
}
}
myrules[0].style.display = "inline";
}
</script>
<div class="col0" id="test">This is hidden by default.</div></body></html>
minimal.css
.col0 {
display:none;
}
UPDATE:
Обратите внимание, что решение о том, должен ли объект отображаться или нет, принимается пользователем - оно не известно во время выполнения!