我正在尝试使用以下代码打印部分页面:
<script type="text/javascript">
$("#btnPrint").live("click", function () {
var divContents = $("#PrintContent").html();
var printWindow = window.open('', '', 'height=400,width=800');
printWindow.document.write('<html><head><title>My Print Title</title>');
printWindow.document.write('</head><body>');
printWindow.document.write(divContents);
printWindow.document.write('</body></html>');
printWindow.document.close();
printWindow.print();
});
</script>
一切都很好但是当用户更改了某些输入(打印div内的表单)时,例如单击复选框后,打印窗口仍显示原始页面(空表单或初始值)。如何让用户在输入时打印页面?
感谢。
答案 0 :(得分:0)
表单的状态保存在DOM中,而不是HTML中。在调用jQuery的html()
函数时,你会失去你的价值观。相反,您必须克隆整个jQuery对象并将其附加到新窗口。
$("#btnPrint").on("click", function () {
var divContents = $("#PrintContent").clone();
var printWindow = window.open('', '', 'height=400,width=800');
divContents.appendTo(printWindow.document.body);
printWindow.print();
});