我使用Joomla作为我的CMS,我使用下面的JavaScript打印页面的特定区域(实际上是整个页面)。
JavaScript
function printDiv(divName) {
var printContents = document.getElementById(divName).innerHTML;
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
window.print();
document.body.innerHTML = originalContents;
}
我使用Joomla在正文选择的同一页上获取日历。
PHP
<?php echo JHTML::calendar($filter_date_to,'filter_date_to', 'filter_date_to', '%Y-%m-%d', `'');?>
尝试打印某些内容后,日历将停止工作。控制台中也没有显示js错误。问题出在哪里?
假设日历依赖于javascript,它可能会因为所有事件侦听器都被解除绑定而停止工作。你最好在一个新的弹出窗口中打开日历信息并打印它,或者拍摄日历信息的快照,用一个显示:none隐藏当前日历,创建一个可见的新div,并将日历信息的截图放入打印中,然后在完成后删除它。
除此之外,您还可以使用CSS媒体查询使页面中不想打印的所有部分消失,因此您根本不必这样做。