我试图在用户打印这个巨大的表单之前隐藏一些 div,然后再显示 div。因此我想忽略页面的其余部分,只打印表单本身。
当然,当用户单击打印按钮时,我可以打开一个单独的页面。唯一的问题是表格真的很长,这样做会很乏味。
编辑:我之前的问题实际上并没有反映我在寻找什么。所以我把它改成了现在的。
还要感谢所有建议的 window.onbeforeprint 和 window.onafterprint。这与我编辑的问题有关。
看看 window.onbeforeprint 和 window.onafterprint (我相信最初的问题是关于如何以编程方式进行)。
更好的方法是使用专门用于打印的样式。换句话说,您的 div 可能如下所示:
<div class="someClass noPrint">My Info</div>
然后你会在你的样式表中有这个:
.someClass {font-family:arial;}
@media print {
.noPrint { display: none; }
}
如果需要,您也可以将其放在单独的样式表中,这样您就不必混合样式:
<link rel="stylesheet" type="text/css" media="print" href="print.css">
您的屏幕样式表可以以一种方式定义“.someClass”,然后您的打印样式表可以以完全不同的方式定义它。
IE 支持onbeforeprint
and onafterprint
,但您真正想要的是打印样式表。
<link rel="stylesheet" type="text/css" media="print" href="print.css">
另见:这个答案
您可能需要考虑使用media="print"创建专门用于打印的样式表
您应该真正将其实现为 CSS media=print 样式。链接元素的媒体属性可用于选择样式表应用于哪些媒体。检查这篇文章