我希望能够使用以下代码:
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 {display:none;}
我也尝试过使用相同结果的addRule,实际上它的错误是“无效参数”并且没有设置任何内容。
我想要完成的是动态隐藏给定页面中的某些元素以便不打印,这些元素使用不同的标签,格式和类,因此没有通用的方法来排除它们(至少我可以想一想,不使用ID选择器。
这适用于使用IE7的Intranet上的业务应用程序。
我目前唯一的解决方法是将此信息发送到ASP,然后将其作为样式表返回,以便将其用作href样式表,因为我可以想到使用ID选择器动态创建样式表。< / p>
提前致谢。
答案 0 :(得分:0)
尝试:
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 );
答案 1 :(得分:0)
对我来说,如果您只使用.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();