在我们的webapp中,通过window.open()或用户单击target =“_ blank”的链接启动Chrome子窗口,然后在该子窗口中,body onload =“window.print()”自动启动打印对话框和打印预览,然后用户关闭打印/子窗口,而不是单击取消,父窗口完全停止.特别:
>没有javascript事件将触发
>没有链接可点击
>点击F5会在选项卡中显示一点微调,但页面永远不会重新加载.
父窗口真的死了 – 你可以做的只是关闭它.
如果您在子窗口(其中通过window.print()启动打印预览)中单击取消,一切都很好.但如果用户关闭窗口,所有的疯狂都会发生.
这是Chrome中已知的错误:
有人知道一个解决办法吗?
解决方法
而不是使用window.print(),只需将您的内容带到新窗口,然后调用下面给出的打印功能来打印内容.
以下是一个函数调用,我们通过它的id将元素的内部html传递给新窗口.
PrintContent(document.getElementById('div-content-id').innerHTML); function PrintContent(printableContent) { var printWindow = window.open("","Print_Content",'scrollbars=1,width=900,height=900top=' + (screen.height - 700) / 2 + ',left=' + (screen.width - 700) / 2); printWindow.document.write(printableContent); printWindow.document.close(); printWindow.focus(); printWindow.print(); printWindow.close(); return false; }
我也面临着同样的问题,它对我有用.