我必须按this
打印部分页面。这是代码:
window.print()
我知道复制innerHTML并在print命令后粘贴它会导致事件监听器丢失。但它可以通过 function printDiv(divName) {
var printContents = document.getElementById(divName).innerHTML;
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
window.print();
document.body.innerHTML = originalContents;
}
附件来克服。但由于我是jQuery的新手,我不知道在datepicker附件的情况下如何在方法上使用此jquery。因此,每次使用此类JavaScript打印方法打印部分网页时,datepicker都会丢失,并且不会附加到所需的输入字段中。
在我的网站上,我点击$('body').on
或其他输入字段以查看可行的日期选择器。然后按#dob
按钮取消或完成打印作业。之后,您可以看到单击Print
和表格的其他输入字段时没有附加日期选择器。
如何解决此问题?请不要推荐CSS打印系统,我必须使用这种方法。
附加datepicker的代码:
#dob
答案 0 :(得分:1)
重置body
标记的内容时,您需要重新初始化日期选择器。当您重置html
时,所有功能绑定都将丢失。
function printDiv(divName) {
var printContents = document.getElementById(divName).innerHTML;
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
window.print();
document.body.innerHTML = originalContents;
// Reinitialize the datepicker here
$('#dob, table.grid > tbody> tr > td > input[type="text"]').datepicker({
dateFormat: 'yy-mm-dd',
changeMonth: true,
changeYear: true,
yearRange: '1900:2016'
});
}