我使用這個函數來打印特定div的內容
print() {
let popupWin = window.open('', '_blank', 'width=1080,height=595');
var htmlToPrint = '' +
'<style type="text/css">' +
'table th, table td {' +
'border:1px solid #000;' +
'padding;0.5em;' +
'}' +
'</style>';
popupWin.document.open();
let printContents = this.Page.nativeElement.innerHTML;
htmlToPrint += printContents;
let printHead = document.head.innerHTML;
popupWin.document
.write(`<html>
${printHead}
<body onload="window.print();">${htmlToPrint}</body></html>`);
popupWin.document.close();
}
但這里的問題是,有一個窗口打開,當我關閉打印對話框時,上面的另一個打印對話框打開,打印窗口仍然打開,我想在單擊打印或取消按鈕后立即關閉新打開的winsow。
在所有內容之前嵌入此內容(緊接在& lthtml & gtpopupWin的:
window.onafterprint = () => window.close()
注意:無論用戶打印成功還是失敗,或者按下取消,只要打印彈出窗口關閉,就會調用窗口的afterprint事件