Javascript 在新选项卡上打印';关于:空白';并在打印后关闭,如datatable lib

Javascript 在新选项卡上打印';关于:空白';并在打印后关闭,如datatable lib,javascript,jquery,html,Javascript,Jquery,Html,我喜欢datatable进行打印的方式,通过单击“打印”按钮,新窗口将打开(不是在弹出窗口中),而在单击“打印”或“取消”后,打印提示将出现,打开的选项卡将关闭! 我想修改,或者说实话,我想创建自己的定制脚本代码! 所以到目前为止,我所做的就是找到了如何打开一个新的关于:空白页: <a href="about:blank" target="_blank">PRINT</a> 那么,如何在空白页面中填充一个包含数据的表格,以及如何在完成打印后自动关闭该页面?它背后的J

我喜欢datatable进行打印的方式,通过单击“打印”按钮,新窗口将打开(不是在弹出窗口中),而在单击“打印”或“取消”后,打印提示将出现,打开的选项卡将关闭! 我想修改,或者说实话,我想创建自己的定制脚本代码! 所以到目前为止,我所做的就是找到了如何打开一个新的关于:空白页:

<a href="about:blank" target="_blank">PRINT</a>

那么,如何在空白页面中填充一个包含数据的表格,以及如何在完成打印后自动关闭该页面?它背后的JavaScript是什么

像这个例子:

注意!我不想为此使用datatable库,我只想要一个清晰的概念,如何做到这一点

如果您选中DataTables print(数据表打印)按钮的复选框,您可以看到实现所需效果的逻辑。请注意,
win
是对弹出窗口的引用,该弹出窗口已创建并已将内容注入

var autoPrint=function(){
if(config.autoPrint){
win.print();//阻塞-如此接近不会
win.close();//执行直到完成此操作
}
};
if(navigator.userAgent.match(/Trident\/\d.\d/){//IE需要在没有设置超时的情况下调用它
自动打印();
}否则{
win.setTimeout(自动打印,1000);
}
简而言之,它们所做的就是调用
print()
,这会阻止主浏览器线程,然后立即调用
close()
。因此,无论用户决定继续打印还是取消打印,只要在模式解除后恢复执行,新窗口就会关闭。
setTimeout()
仅用于确保在打印前已将所有样式和数据加载到IE中

这是一个简单而有效的解决方案