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 将内容写入新窗口,但它对我不起作用。请帮帮我。

顺便说一句,我需要将内容写入某个 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 错误结束...

由于我不确定在什么上下文中执行就绪回调,让我们尝试更明确:

  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 回答