2011-09-14 4 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

あなたのポストの場合、コードの壁は、それが理解です](http://jsfiddle.net)リンク! –

+0

どのブラウザですか?私のためにうまく動作します:http://jsfiddle.net/pPdwC/ –

答えて

1

を行うことができます。

ウィンドウの使用負荷のイベント、それがロードされた後、ドキュメントのコンテンツにアクセスできるように:あなたは[jsfiddle.netを作る場合

$(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', ... 

に続いて、あなたはページが読み込まれた後、あなたが文書を交換する document.writeを使用することにより

Print_message.document.write(printableHTML); 
関連する問題