JavaScript打印功能使日历停止工作


JavaScript print function make the calendar stop working

我使用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媒体查询使页面中不想打印的所有部分消失,因此您根本不必这样做。