Как создать динамическую таблицу стилей с помощью селектора идентификаторов? - PullRequest
1 голос
/ 09 сентября 2011

Я хочу, чтобы следующий код работал:

var head = document.getElementsByTagName("head")[0];
var style = document.createElement( "style" );

style.type = "text/css";
style.media = "print";
style.styleSheet.cssText = "#menu {display:none;}";
head.appendChild( style );
window.print();

Проблема в том, что он заканчивается в следующем стиле:
UNKNOWN {показ: нет;}

Я также пытался использовать addRule с тем же результатом, но на самом деле он выдает ошибку «Неверный аргумент» и ничего не установлено.

То, что я пытаюсь сделать, - это динамически скрывать некоторые элементы на данной странице, чтобы они не печатались, эти элементы используют разные теги, форматы и классы, поэтому нет общего способа их исключить (по крайней мере, я могу думать) без использования селектора идентификаторов.

Это для бизнес-приложений в интрасети, использующих IE7.

Мой единственный способ обойти это - отправить эту информацию в ASP, чтобы просто вернуть ее обратно в виде таблицы стилей, чтобы я мог использовать ее в качестве таблицы стилей href, поскольку это все, что я могу придумать для динамического создания таблицы стилей с помощью селекторов идентификаторов.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 09 сентября 2011

Для меня это работает, если вы просто используете .innerHTML.Хотя я на Chrome, похоже, вы на Internet Explorer.Тем не менее, используя .innerHTML, вы можете просто установить содержимое (то есть между <style> и </style>).

var head = document.getElementsByTagName("head")[0];
var style = document.createElement( "style" );

style.type = "text/css";
style.media = "print";
style.innerHTML = "#menu {display:none;}";
head.appendChild( style );
window.print();
0 голосов
/ 09 сентября 2011

Попробуйте:

var head = document.getElementsByTagName("head")[0];
var style = document.createElement( "style" );
style.type = "text/css";
style.media = "print";
style.text = "#menu {display:none;}";
head.appendChild( style );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...