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

时间:2014-05-20 05:09:01

标签: javascript google-chrome

在我们的网络应用中,可以window.open()或用户点击target="_blank"的链接启动Chrome子窗口,然后在该子窗口中,正文onload="window.print()"自动启动打印对话框和打印预览,然后用户关闭打印/子窗口而不是单击取消,父窗口完全被清除。具体做法是:

  1. 不会触发任何javascript事件
  2. 无法点击链接
  3. 点击F5会显示标签中的小微调器,但页面永远不会重新加载。
  4. 父窗口真的死了 - 你所能做的就是关闭它。
  5. 如果单击子窗口上的取消(通过window.print()启动打印预览的位置),一切都很好。但如果用户关闭窗口,就会发生所有的疯狂。

    这是Chrome中的已知错误:

    有没有人知道这方面的解决方法?

1 个答案:

答案 0 :(得分: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;
}

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