2013-04-08 75 views
3

我有以下的Java脚本代码Java脚本的打印出一张空白页

$("#btn_Print").click(function (e) { 
      e.preventDefault(); 
      var printWindow = window.open("../private/analysisPrint.htm"); 
      printWindow.print(); 
      printWindow.close(); 
      return false; 
     }); 

和analysisPrint.htm页包含的内容。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html 

    xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title></title> 
    </head> 
    <body> 
     <div> 
      <h4> 
       Print</h4> 
       First print page 
     </div> 
    </body> 
    </html> 

我遇到的问题是我总是得到一个正在打印的空白页。当我直接打开页面并打印它的罚款。

任何想法

+2

您可能需要等待完成页面加载第一。 – 2013-04-08 22:56:25

+0

如果您删除print()和close()调用,它会打开窗口并正确加载文档吗? – 2013-04-08 23:02:53

+0

@iKnowKungFoo,它是正确加载。如果我然后从浏览器菜单打印它很好。 – 2013-04-08 23:08:50

回答

5

可以(并且可能应该)等待页面加载完全(包括图片):

var printWindow = window.open("../private/analysisPrint.htm"); 
$(printWindow).on('load', function() { 
    printWindow.print(); 
    printWindow.close(); 
});