打印内容后页面重新加载

时间:2017-04-24 12:50:29

标签: javascript php jquery html

我正在使用div来打印(window.print())来打印内容。但是在打印功能之后,当前页面的侧面菜单不起作用(不支持)。由于这个问题,我使用的是location.reload();用于页面重新加载。但那也行不通。请帮帮我。

我的div打印功能是,

 function printDiv(divName) {
    $("#DataTables_Table_0_length").hide();
    $("#DataTables_Table_0_filter").hide();
    $("#DataTables_Table_0_info").hide();
    $("#DataTables_Table_0_paginate").hide();
    var printContents = document.getElementById(divName).innerHTML;
    var originalContents = document.body.innerHTML;
    document.body.innerHTML = printContents;
    window.print();
    document.body.innerHTML = originalContents;
    $("#DataTables_Table_0_length").show();
    $("#DataTables_Table_0_filter").show();
    $("#DataTables_Table_0_info").show();
    $("#DataTables_Table_0_paginate").show();
    window.location.reload(true);
}

2 个答案:

答案 0 :(得分:1)

如果阻止打印逻辑,可以将打印逻辑包装在内部,并使用另一个窗口打印内容:

if(window.print){
        var printWindow = window.open('', 'Printing...', 'height=400,width=600');
        printWindow.document.write(YOUR_CONTENT_OF_DIV);
        printWindow.document.close(); 
        printWindow.focus();
        printWindow.print();
        printWindow.close();
} else {
        alert("Printing is not supported by browser")
}

答案 1 :(得分:0)

如果您正在使用某些主题,可能正在使用CSS媒体查询“@media print”隐藏侧边菜单。只需使用调试器甚至IDE来查找事件。 顺便说一句,您还应该创建一个CSS规则来打印您的div而不是使用JS,只需:

@media print {
  .your-div #DataTables_Table_0_length {
    display: none;
  }
  // ...
}