[英]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.