繁体   English   中英

在 FireFox 中的新 window 中打印第一次不起作用,但之后

[英]Printing in new window in FireFox doesn't work the first time, but afterwards

我的脚本应该打开一个 window 并在 2 秒后触发打印对话框。 该脚本总是打开弹出窗口和打印对话框,但第一次它不能真正打印(例如,PDF)文档,尽管每隔一次它都会这样做。

 function PrintElem(elem) { var mywindow = window.open('', 'PRINT', 'height=130px,width=250px'); mywindow.document.write('<html><head>'); mywindow.document.write('</head><body >'); mywindow.document.write(document.getElementById(elem).innerHTML); mywindow.document.write('</body></html>'); mywindow.document.close(); // necessary for IE >= 10 mywindow.focus(); // necessary for IE >= 10*/ setTimeout(function() { mywindow.print(); mywindow.close(); }, 2000) return true; }
 <div id="MyDiv"> <p>Some Text</p> </div> <a id="12345" href="javascript:void(0)" onclick="PrintElem('MyDiv');return false;">Print MyDiv</a>

我认为这一行mywindow.document.close(); 导致问题。 它应该在mywindow.document.print();之后 .

由于您现在澄清您的脚本正在正确触发 window 和打印弹出窗口,但只有 FF 中的打印本身第一次没有按预期工作,所以我重新搜索了一下。

这是一个老问题,但至少有一个关于 FF 没有第一次打印的问题。 一条评论建议将关闭操作延迟一段时间(例如 1 秒)。

看来您必须延迟关闭操作,否则由于某些原因,FF 不知道要打印什么 window ,因为它关闭得太早了。 在这里查看我的 plnkr

所以这会有所帮助:

mywindow.print();
setTimeout(function() {
    mywindow.close();
}, 5000)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM