2011-09-14 100 views
1

在這個波紋管程序中,如果你點擊'PRINT',html內容將被添加到新的彈出窗口b.html中。它工作正常,但b.html有一些html內容,當新的彈出窗口打開時,我正在丟失這些數據。在不缺少b.html的html內容的情況下,我如何在內部添加新的html內容。新的彈出窗口有問題嗎?

我的示例代碼:

頁面名稱:a.html

   <html> 
        <head> 
          <script type="text/javascript" src="js/jquery-1.6.1.min.js"> </script> 
          <script type="text/javascript"> 
           $(document).ready(function() 
           { 
            $("#print").click(function() 
            { 
             var newWind=window.open('b.html', 'Print message',"left=100,screenX=200,menubar=yes, width=980,height=500, location=yes,resizable=yes,scrollbars=yes,status=yes"); 
             var printableHTML=$("#msg").html(); 
             newWind.document.write(printableHTML); 
             //newWind.append(printableHTML); 
            }); 
           }); 
          </script> 
        </head> 
        <body> 
          <span id="print"><u>PRINT</u></span> 

          <div id="msg"> 
          <h4> I am printing this message...</h4> 
          </div> 
        </body> 
       </html> 

頁面名稱:b.html

  <html> 
       <head> </head> 
       <body> 
        <h4>Hello</h4> 
        <div id="target"></div> 
       </body> 
      </html> 
+0

如果您的帖子的代碼一面牆,如果你把它的讚賞一個[jsfiddle.net ](http://jsfiddle.net)鏈接! –

+0

什麼瀏覽器?爲我工作很好:http://jsfiddle.net/pPdwC/ –

回答

1

通過使用document.write在頁面加載後,要更換的文件。

窗口

使用load事件,這樣一旦加載,您可以訪問該文件的內容:

$(newWind).load(function() { 
    $('#target', newWind.document).html(printableHTML); 
}); 
+0

感謝它工作正常 – Hearaman

0

而不是彈出一個新窗口,用您想要打印的位填充它,更好的解決方案是將其打印爲標準window.print()並使用打印介質樣式表來顯示/隱藏要打印的頁面部分。

@media print { 
    /* style sheet for print goes here */ 
} 
0

變化

var newWind=window.open('b.html', 'Print message', ... 

window.open('b.html', 'Print_message', ... 

然後,你可以做

Print_message.document.write(printableHTML);