簡體   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