如何挂钩到 window.print 对话框关闭事件来调用函数?
我正在使用 jQuery 插件Datatables和Table tools 插件从网页打印数据。
默认行为
- 将表格数据格式化为仅在页面上可见的元素
- 显示一个 div,告诉用户单击浏览器上的打印按钮。
- 用户打印后,用户必须按Esc,这会使页面看起来与单击打印按钮之前一样。
期望的行为
- 数据格式相同
- 不要显示点击打印按钮的说明
- 称呼
window.print();
- 打印对话框关闭后,使页面看起来与单击打印按钮之前一样。
如何挂钩到 window.print 对话框关闭事件来调用函数?
我正在使用 jQuery 插件Datatables和Table tools 插件从网页打印数据。
window.print();
不需要 JavaScript,这个 CSS 解决方案怎么样?这也应该适用于所有浏览器。
@media print
{
/* Add here any selector for ('root') elements you do not want to be printed. */
.header, .footer, .floating-print-instructions
{
display: none;
}
}
请注意,如果选择器匹配在其属性中具有显式display: block
(和相似)的元素style
等(或使用 JavaScript),它可能仍会显示。
另外,我相信一些浏览器(Internet Explorer?)有beforeprint
事件afterprint
,我想你可以听他们并采取相应的行动,但这并不是真正的跨浏览器实现,它比普通的 CSS 稍微复杂一些。
您可以通过监听 keyup/keydown 事件来了解用户按下了 Cotrol + P。但是,用户可以使用其他方式(菜单、工具栏按钮)进行打印。此外,在某些浏览器 (Chrome) 中,window.print()
它是部分异步的(只有window.close()
调用在它之后同步运行),因此您的代码可能会在它之后运行。