gpt4 book ai didi

javascript - 在新选项卡上打印 'about:blank' 并在像数据表库一样打印后关闭

转载 作者:行者123 更新时间:2023-11-30 19:33:49 24 4
gpt4 key购买 nike

我喜欢数据表打印的方式,通过点击打印按钮,新窗口打开(不是在弹出窗口中),比打印提示出现,点击打印或取消后打开的选项卡关闭!我想修改,或者说实话,我想创建自己的自定义脚本代码!所以到目前为止我所做的就是找到了如何打开一个新的 about:blank 页面:

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

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

像这个例子:https://jsfiddle.net/ms85e7zo/

注意!我不想为此使用数据表库,我只想清楚地了解如何做到这一点!

最佳答案

如果您检查 source在 DataTables 打印按钮上,您可以看到实现您所追求的效果的逻辑。请注意,win 是对已创建并已将内容注入(inject)其中的弹出窗口的引用。

var autoPrint = function() {
if (config.autoPrint) {
win.print(); // blocking - so close will not
win.close(); // execute until this is done
}
};

if (navigator.userAgent.match(/Trident\/\d.\d/)) { // IE needs to call this without a setTimeout
autoPrint();
} else {
win.setTimeout(autoPrint, 1000);
}

简而言之,它们所做的就是调用 print(),这会阻塞主浏览器线程,然后立即调用 close()。因此,无论用户决定继续打印还是取消打印,只要在模态消失后恢复执行,新窗口就会关闭。 setTimeout()只是为了确保打印前所有的样式和数据都已经加载到IE中。

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

关于javascript - 在新选项卡上打印 'about:blank' 并在像数据表库一样打印后关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56164458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com