2017-04-01 62 views
0

我寫了下面的代碼來打印屏幕。它工作正常。它也是打開PDF文件。但在pdf文件後面有一個窗口正在打開。當我們按下pdf文件時,該窗口將打開。該窗口後面的問題是它變得可編輯。如何刪除後面的窗口。在angularjs中打印

angular.element('#hideLeftLinks').addClass("no-print"); 
var printContents = angular.element('#Print').html(); 
var popupWin = window.open('', '_blank', 'width=1000,height=1000'); 
popupWin.document.open(); 
popupWin.document.write('<html><head><link rel="stylesheet" type="text/css" href="css/Copyofstyles.css" /></head><body onload="window.print()">' + printContents + '</body></html>'); 
popupWin.document.close(); 
popupWin.innerHTML=''; 
angular.element('#hideLeftLinks').removeClass("no-print"); 

回答

0

您應該檢查this answer。我測試了自己,看來答案是現在唯一的一個工作答案。我刪除了onload="window.print()"並添加了<script>window.print(); setTimeout(window.close, 0);</script>,它工作。不需要popupWin.document.close();,也可能需要popupWin.innerHTML='';。因此,更換下面三行

popupWin.document.write('<html><head><link rel="stylesheet" type="text/css" 
    href="css/Copyofstyles.css" /></head><body onload="window.print()">' + printContents + 
    '</body></html>'); 
popupWin.document.close(); 
popupWin.innerHTML=''; 

popupWin.document.write('<html><head><link rel="stylesheet" type="text/css" 
    href="css/Copyofstyles.css" /></head><body>' + printContents + 
    '<script>window.print(); setTimeout(window.close, 0);</script></body></html>'); 
+0

在上面的代碼工作正常,但窗口後面仍然打開,你能提供的任何東西,關閉窗口的後面。 –

+0

當然,它是開放的。如果未打開,則無法打印該頁面。問題是'按下打印或取消按鈕後窗口不能關閉'。 –