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
事件。这是每次调用但页面没有刷新。请帮帮我。
我想在打印页面后重新加载页面。
答案 0 :(得分:0)
以下 firefox 的工作是,对于 chrome no.Your页面正在重新加载,只是它没有在chrome中工作。
window.onafterprint = function() {
window.location.reload(true);
};
对于 chrome onafterprint 不起作用,因为没有实现,所以你需要 addListeners 到媒体查询,其中一种方式如下所述实现同样的目标。
window.matchMedia('print').addListener(function (media) {
if(media.matches){
}
else{
window.location.reload(true);
//location.reload();
}
});
}
虽然我不知道写入html的重点是什么,然后又重新加载页面。
请参阅以下链接了解工作样本:
答案 1 :(得分:0)
document.body.innerHTML = oldstr;之后 添加window.location.reload(true);