0
我想打印一个页面,其中动态添加内容。我尝试做这样的:打印动态内容 - 在克隆中替换
$("body").on("click", function() {
function preparePrint() {
var print_window = window.open();
var print_document = $("div.container").clone();
print_document.find('.block').each(replaceWith("X"));
print_window.document.open();
print_window.document.write(print_document.html());
print_window.document.close();
print_window.print();
print_window.close();
}
$("#print").click(function() {
preparePrint();
})
})
随着每一次点击,该div
与container
类的内容被克隆。 container
拥有一些div
s和表。在克隆中,我尝试找到类block
中的元素,并用大写“X”替换它们。 block
是动态添加到某个td
的类。
然后,我打开一个新窗口并将克隆的html内容放在那里。然后我打印它。
到目前为止,这么好,但替换不起作用 - 为什么?我也尝试document.write
,html()
和text()
在那里得到“X”,但没有效果。我总是以一个白页面结束,所以也许克隆也有问题。
您需要在每个函数中公开对象,然后针对它运行代码。你需要用 - >'print_document.find('。block')来更改replaceWith的功能,每个(function(){$(this).replaceWidth(“X”)});' – Ohgodwhy 2012-07-28 15:44:25
谢谢!使用你的代码(顺便说一句:这里有一个小的错字 - 请参阅'replaceWidth'需要'replaceWith')它的工作原理!我也删除了'on'处理程序,因为它不需要。所以,可以发表你的评论作为一个实际的答案,所以我可以接受它吗? – Sven 2012-07-28 17:15:16