问题:jQuery打开后立即打印关闭窗口

时间:2019-11-03 09:13:29

标签: jquery google-chrome printing

在某些Chrome浏览器中,当用户单击“打印”按钮时,会立即关闭。

我的代码是:

newWin = window.open("");
newWin.document.write("some content");
newWin.print();
newWin.close();

我尝试过:

newWin.focus();
newWin.print();
newWin.close();

并且:

setTimeout(function () { newWin.print(); }, 500);
newWin.onfocus = function () { setTimeout(function () { newWin.close(); }, 500); }

并且:

var document_focus = false; // var we use to monitor document focused status.

// Now our event handlers.
$(document).ready(function() { newWin.window.print();document_focus = true; });
setInterval(function() { if (document_focus === true) { newWin.window.close(); }  }, 300);

但是它们都不起作用,并且打印窗口仍然关闭。

如何防止打印窗口关闭?

谢谢。

1 个答案:

答案 0 :(得分:0)

我已经使用iFrame解决了这个问题

iFrame:

 <iframe id="print_this_iframe" hidden></iframe>

Jquery:

var dstFrame = document.getElementById('print_this_iframe');
var dstDoc = dstFrame.contentDocument || dstFrame.contentWindow.document;
dstDoc.write('Some Content');
dstDoc.close();
dstFrame.onload = function() { $("#print_this_iframe").get(0).contentWindow.print()};