使用jQuery在新窗口的特定部分写入内容
我的项目中有以下代码,用于打开一个新窗口进行显示,然后从第一个窗口打印结果表:使用jQuery在新窗口的特定部分写入内容,jquery,new-window,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"); $(
$('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指向包含我的表信息的字段集。如果我使用下面的代码,我可以看到所有表格内容:
警报(elementToPrint)代码>
到目前为止一切都还可以。但是最后一行代码不起作用,任何东西都不能在printWin窗口中写入。我不知道为什么:(
我用过它,但它对我不起作用。请帮帮我
顺便说一句,我需要将内容写入某个div(id=“myDiv”
)。我该怎么做呢?试试看
printWin.body.innerHTML = elementToPrint;
document.getElementById('myDiv').innerHTML = elementToPrint;
试试这个:
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);
}
rene,elementToPrint('myDiv').html(elementToPrint);
对我不起作用:(我不知道为什么。如果我提醒elementToPrint
我可以看到所有html内容,但我不知道为什么它不能被写入似乎我没有任何权限访问$('myDiv')
。我尝试了$('myDiv').css('background-color','333'))
也是。但没有发生任何事情。@Mohammad我添加了第二个示例以确保选择运行正确的上下文,但这一行$(printWin.document).find('div#myDiv').html(elementToPrint);
不适合我-@rene@ubm问一个新问题,你在哪里遵循指导,以确保我们可以看到你的案例与本案例之间的不同。可能是安全策略、jquery错误、html标记错误等。你的评论几乎没有足够的信息来诊断可能的错误。