我有模态对话框,有一些应该打印的文字和打印链接。因此,当我按下打印时,在Chrome中打开预览对话框需要大约30秒(firefox,safari,即很好)。这是什么原因?
对话框:
<div id="dialog">
<div id="to_print_data">
My data to print!!!!!
</div>
Click <a href="#" onclick="window.print(); return false;"> here</a>
</div>
<style>
@media print {
body * {
visibility:hidden;
}
#to_print_data, #to_print_data * {
visibility:visible;
}
#to_print_data {
position:absolute;
left:0!important;
top:0!important;
border:0!important;
font-size:16px!important;
}
}
</style>
更新
我发现原因,在后台运行一些脚本,使得发布请求,并且请求具有待处理状态约30秒,在完成打印对话后出现。当打印等待post请求完成时,如何在不删除脚本的情况下防止此行为?
答案 0 :(得分:3)
我找到了原因。如果在后台运行某些扩展,则会发出请求。此请求的待处理状态约为30秒。只有在完成打印对话后才会出现。因此待处理的请求块打印对话打开
答案 1 :(得分:0)
在我的情况下,在我刷新页面之前根本不打印,如下所述:Chrome: window.print() print dialogue opens only after page reload (javascript)。
@ noypiscripter的答案为我解决了这个问题:
function printPage() {
window.print();
//workaround for Chrome bug - https://code.google.com/p/chromium/issues/detail?id=141633
if (window.stop) {
location.reload(); //triggering unload (e.g. reloading the page) makes the print dialog appear
window.stop(); //immediately stop reloading
}
return false;
}