2012-03-13 75 views
1

我试图用iframe和div打印div数据包含网格与分页当我打印div使用js只有几个记录打印在.xps文件..为什么它如此...iframe数据打印不正确

这里是IFRAME:

<iframe id='ifrmPr' src='#'style="width:100%;height:100%;display:block;border:none;ackground:transparent">  
</iframe> 

这里是我的js代码打印DIV

var ifrm = document.getElementById('ifrmPr'); 
     var content = document.getElementById('PrintSection').innerHTML; 

     /* Determine what DOM model to use */ 
     var printDoc = (ifrm.contentWindow || ifrm.contentDocument); 
     if (printDoc.document) { 
      printDoc = printDoc.document; 
     } 

     /* Create a HTML document to go into the iFrame */ 
     /* The title will appear on the printed document */ 
     printDoc.write("<html><head><title>title</title>"); 
     printDoc.write("<link rel='stylesheet' type='text/css' href='../../Content/pageElement.css' />"); 
     printDoc.write("<link rel='stylesheet' type='text/css' href='../../Content/Site.css' />"); 
     printDoc.write("<link rel='stylesheet' type='text/css' href='../../Content/style.css' />"); 
     printDoc.write("</head><body onload='this.focus(); this.print();'>"); 
     printDoc.write(content + "</body></html>"); 
     printDoc.close(); 
+0

打印输出中有* *号*什么? – Pointy 2012-03-13 13:16:03

+0

某些数据在.xps文件中丢失。 – user1194147 2012-03-15 06:11:02

回答

0

try this method,而不是使用.write()

var ifrm = document.getElementById('ifrmPr'); 

var printDoc = ifrm.contentWindow || ifrm.contentDocument; 
if (printDoc.document) { 
    printDoc = printDoc.document; 
} 

var frameBody = printDoc.getElementsByTagName('body')[0]; 

frameBody.innerHTML = "test"; 

我认为(不知道虽然),this是窗口/文档对象。我认为你可以从父框架调用printDoc.print(),而不是在子框架中进行。