我正在尝试打印一个适用于IE和Google Chrome的特定div。这是我写的代码。
function PrintElem(elem) {
Popup($(elem).html());
}
function Popup(data) {
var mywindow = window.open('', 'Product Purchase Summary Page ','height=400,width=600');
mywindow.document.write('<html><head><title>my div</title>');
mywindow.document.write('</head><body onload="javascript:window.print();">');
mywindow.document.write(data);
mywindow.document.write('</body></html>');
mywindow.print();
if (navigator.userAgent.match(/MSIE/) !== null) {
mywindow.location.reload();
}
return true;
}
代码在IE中运行良好。在chrome中,第一次单击打印按钮时,它会打开一个打印窗口。关闭打印窗口后,如果我第二次单击打印按钮,window.open不会打开打印窗口。它只适用于第一次。打印按钮第二次不执行任何操作。 但是当我在打印窗口中点击取消按钮(而不是关闭)时,第二次点击按钮就可以了。 有人可以帮忙吗?
答案 0 :(得分:0)
事实上,我一直面临与Chrome 34完全相同的问题。我今天早上更新到了Chrome 36,问题已解决。
在任何情况下,您可能想尝试这个,它通过在弹出窗口中放置焦点 - 关闭 - 功能来解决我的问题。
<HTML>
<HEAD><TITLE>PRINT TEST</TITLE></HEAD>
<BODY>
<button label="print" onclick="print();">print</button>
</BODY>
<script>
function print() {
var datawindow = window.open("", "data", "height=400,width=600");
datawindow.document.write("<html><head><title>data</title>");
datawindow.document.write("</head><body onload='window.focus();window.print();' onbeforeunload='window.close();' ><pre><code>");
datawindow.document.write("SOMETHING TO PRINT GOES HERE");
datawindow.document.write("</code></pre></body></html>");
datawindow.document.close();
datawindow.close();
this.__handlePrintSuccess();
}
</script>
</HTML>
请注意onload='window.focus();window.print();'
和onbeforeunload='window.close();'
答案 1 :(得分:0)
$(document).on("click", "#printBtn", function()
{
// Code [ Tap.. Tap.. Tap..]
});