[英]How to page reload after print my page?
function printdiv(printpage) { var headstr = "<html><head><title></title></head><body>"; var footstr = "</body>"; var elements = document.getElementsByClassName('hide-print-area'); for (var i = 0; i < elements.length; i++) { elements[i].style.display = 'none'; } var newstr = document.all.item(printpage).innerHTML; var oldstr = document.body.innerHTML; document.body.innerHTML = headstr + newstr + footstr; window.print(); document.body.innerHTML = oldstr; for (var i = 0; i < elements.length; i++) { elements[i].style.display = 'block'; } return false; } window.onafterprint = function() { //alert("Hello"); window.location.reload(true); };
<html> <head> <title>Test Printing Page </title> </head> <body> <div id="printArea"> <h2>Print Title</h2> <div>Desciption Here</div> <input class="hide-print-area" type="button" value="Print" onclick="printdiv('printArea')" /> </div> </body> </html>
當我點擊cancel
按鈕時Mozilla瀏覽器頁面刷新但是當我點擊ok
按鈕時頁面沒有刷新。
Chrome什么也沒有發生。
我已經檢查了onafterprint
事件。 這每次都在調用,但頁面沒有刷新。 請幫我。
我想在打印我的頁面后重新加載頁面。
以下適用於Firefox是的,適用於chrome否。您的頁面正在重新加載,只是它在 chrome 中不起作用。
window.onafterprint = function() {
window.location.reload(true);
};
對於chrome onafterprint不起作用,因為沒有實現它,因此您需要將偵聽器添加到媒體查詢中,其中一種方法如下所述以實現相同的目的。
window.matchMedia('print').addListener(function (media) {
if(media.matches){
}
else{
window.location.reload(true);
//location.reload();
}
});
}
雖然我不明白寫入 html 然后再次重新加載頁面有什么意義。
請參閱以下鏈接以獲取工作示例:
在 document.body.innerHTML = oldstr; 之后添加 window.location.reload(true);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.