使用jQuery在新窗口的某个部分写内容

时间:2011-12-31 13:07:19

标签: jquery new-window

我的项目中有这些代码打开一个新窗口显示,然后从我的第一个窗口打印结果表:

$('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 窗口中写入。我不知道为什么:(

我使用了Write Content To New Window with JQuery,但它对我不起作用。请帮帮我。

顺便说一句,我需要将内容写入某个div(id="myDiv")。我该怎么办?

2 个答案:

答案 0 :(得分: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); 
  }

答案 1 :(得分:0)

尝试

printWin.body.innerHTML = elementToPrint;
document.getElementById('myDiv').innerHTML = elementToPrint;