javascript – window.print()从Chrome子窗口 – 关闭,然后中断

前端之家收集整理的这篇文章主要介绍了javascript – window.print()从Chrome子窗口 – 关闭,然后中断前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我们的webapp中,通过window.open()或用户单击target =“_ blank”的链接启动Chrome子窗口,然后在该子窗口中,body onload =“window.print()”自动启动打印对话框和打印预览,然后用户关闭打印/子窗口,而不是单击取消,父窗口完全停止.特别:

>没有javascript事件将触发
>没有链接可点击
>点击F5会在选项卡中显示一点微调,但页面永远不会重新加载.
父窗口真的死了 – 你可以做的只是关闭它.

如果您在子窗口(其中通过window.print()启动打印预览)中单击取消,一切都很好.但如果用户关闭窗口,所有的疯狂都会发生.

这是Chrome中已知的错误

> bug 1
> bug 2
> bug 3

有人知道一个解决办法吗?

解决方法

而不是使用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;
}

我也面临着同样的问题,它对我有用.

猜你在找的JavaScript相关文章