来自Chrome子窗口的window.print() - 关闭,然后休息

Her*_*der 10 javascript google-chrome

当我们在我们的网络应用程序中启动Chrome子窗口时,window.open()或者通过用户单击链接target="_blank",然后在该子窗口中,主体onload="window.print()"自动启动打印对话框并打印预览,然后用户关闭打印/子窗口而不是单击取消,父窗口完全被冲洗.特别:

  1. 没有javascript事件会触发
  2. 没有链接可点击
  3. 点击F5显示选项卡中的小微调器,但页面永远不会重新加载.
  4. 父窗口真的死了 - 你所能做的就是关闭它.

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

这是Chrome中的已知错误:

有谁知道这个的解决方法?

V2S*_*eam 1

无需使用window.print(),只需将内容带到新窗口,然后调用下面给出的打印功能来打印内容。

下面是一个函数调用,我们将元素的内部 html 通过它的 id 传递到新窗口。

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;
}
Run Code Online (Sandbox Code Playgroud)

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