Javascript 如何挂接到window.print对话框close事件以调用函数
如何挂接window.print对话框关闭事件以调用函数 我正在使用jQuery插件和从网页打印数据 默认行为Javascript 如何挂接到window.print对话框close事件以调用函数,javascript,javascript-events,Javascript,Javascript Events,如何挂接window.print对话框关闭事件以调用函数 我正在使用jQuery插件和从网页打印数据 默认行为 将表数据格式化为页面上唯一可见的元素 显示一个div,告诉用户单击浏览器上的“打印”按钮 在用户打印后,用户必须按Esc键,这会使页面看起来与单击“打印”按钮之前一样 期望行为 将数据格式化为相同的格式 不显示单击“打印”按钮的说明 调用window.print() 打印对话框关闭后,使页面看起来与单击打印按钮前一样 不需要JavaScript,这个CSS解决方案怎么样? 这也
- 将表数据格式化为页面上唯一可见的元素
- 显示一个div,告诉用户单击浏览器上的“打印”按钮
- 在用户打印后,用户必须按Esc键,这会使页面看起来与单击“打印”按钮之前一样
- 将数据格式化为相同的格式
- 不显示单击“打印”按钮的说明
- 调用
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;
}
}
请注意,如果选择器匹配在其style
属性中具有显式display:block
(及类似内容)等属性(或使用JavaScript)的元素,则可能仍会显示该元素
另外,我相信一些浏览器(Internet Explorer?)有beforeprint
和afterprint
事件,我想你可以听它们并相应地采取行动,但这不是真正的跨浏览器实现,它比普通CSS稍微复杂一些
您可以收听keyup/keydown事件,以了解用户按下了Cotrol+p。但是,用户可以使用其他方式(菜单、工具栏按钮)打印。
另外,在某些浏览器(Chrome)中,
window.print()
是部分异步的(只有window.close()
调用在它之后同步运行),因此您的代码可能会在它之后运行。您是说不要使用datatables打印功能,而只是使用css来隐藏打印输出中不应该显示的内容?我想是这样的。我不知道这些插件,我给出了一个更通用的解决方案。我喜欢datatables打印功能,因为用户仍然可以按他们看到的方式打印页面,但是如果他们单击datatables打印按钮,它将只打印表中的数据。我知道这会有什么帮助,虽然不是为了我的需要。我想你也可以这样做。如果连接到Datatables打印按钮,则可以将类添加到document.body
,这将导致页面仅显示表,否则,显示所有内容。您可以通过使用setImmediate/setTimeout(零超时或其他)删除该类来删除该类,尽管这不是最好的解决方案,是的。