1

プロジェクトに次のコードがあり、新しいウィンドウを開いて表示し、最初のウィンドウから結果テーブルを印刷します。

$('a.print_btn').click(function(e) {
    var elementId = $(this).attr('id');
    var elementToPrint = $("#report_" + elementId).html();
    var printWin = window.open("print.php?id="+elementId, "Print");
    $(printWin.document.body).html(elementToPrint);
}); 

このコードの #report_elementId は、テーブル情報を含むフィールドセットを指しています。以下のコードを使用すると、すべてのテーブルの内容を確認できます。

alert(elementToPrint);

これまでのところすべて問題ありません。しかし、コードの最後の行が機能せず、printWinウィンドウに何も書き込まれません。どうしてか分かりません :(

JQuery を使用して Write Content To New Window を使用しましたが、うまくいきません。お願い助けて。

ところで、特定の div ( id="myDiv") にコンテンツを書き込む必要があります。どうすればいいですか?

4

2 に答える 2

2

これを試して:

  var printWin = window.open("print.php?id="+elementId, "Print");
  $(printWin.document).ready( function() {
     $('div#myDiv').html(elementToPrint); 
  }

print.php?id=[something] は機能すると思います。つまり、500または404エラーで終了しません...

ready コールバックが実行されるコンテキストが不明なため、より明確にしてみましょう。

  var printWin = window.open("print.php?id="+elementId, "Print");
  $(printWin.document).ready( function() {
     $(printWin.document).find('div#myDiv').html(elementToPrint); 
  }
于 2011-12-31T14:48:48.423 に答える
0

試す

printWin.body.innerHTML = elementToPrint;
document.getElementById('myDiv').innerHTML = elementToPrint;
于 2011-12-31T13:11:48.077 に答える