
如果在调用print()之后尝试关闭窗口,则可能会立即关闭窗口,而print()将无法工作. 这是你不应该做的:
window.open();
...
window.print();
window.close();

此解决方案将在Firefox中运行,因为在print()调用中,它将等待打印完成,然后继续处理javascript并关闭窗口. IE将失败,因为它调用了close()函数而没有等待print()调用完成. 在完成打印之前,弹出窗口将关闭.
解决此问题的一种方法是使用“ onafterprint”事件,但我不建议您使用它打印机服务自动关闭,因为这些事件只能在IE中使用.

最好的方法是在关闭打印对话框后关闭弹出窗口(打印完成或取消). 此时,弹出窗口将处于焦点状态,您可以使用“ onfocus”事件关闭弹出窗口.
为此,只需在弹出窗口中插入以下JavaScript嵌入代码:

<script type="text/javascript">
window.print();
window.onfocus=function(){ window.close();}
</script>
适用于所有当前浏览器:

setTimeout(function () { window.print(); }, 500);
window.onfocus = function () { setTimeout(function () { window.close(); }, 500); }
如果在调用print()之后尝试关闭窗口,则可能会立即关闭窗口打印机服务自动关闭,而print()将无法工作. 这是您不应该做的: window.open(); ... window.print(); window.close();该解决方案将在Firefox中运行,因为print()调用...
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-228458-1.html
以身作则