2017-04-01 41 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

当然,它是开放的。如果未打开,则无法打印该页面。问题是'按下打印或取消按钮后窗口不能关闭'。 –