簡體   English   中英

打印內容后重新加載頁面

[英]Page reload after print contents

我正在使用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);
}

您可以將打印邏輯包裝在if塊中,並使用另一個窗口作為打印內容:

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")
}

如果您使用的是主題,則可能是使用CSS媒體查詢“ @media print”隱藏了側面菜單。 只需使用調試器,甚至是您的IDE來查找事件。 順便說一句,您還應該創建CSS規則來打印div而不是使用JS,方法是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM