Javascript Chrome window.print()打开时间过长
我有一个模态对话框,有一些应该打印的文本,还有打印链接。所以当我按print时,我需要30秒才能在chrome中打开预览对话框(firefox、safari、ie都可以)。原因是什么 对话框:Javascript Chrome window.print()打开时间过长,javascript,google-chrome,chromium,Javascript,Google Chrome,Chromium,我有一个模态对话框,有一些应该打印的文本,还有打印链接。所以当我按print时,我需要30秒才能在chrome中打开预览对话框(firefox、safari、ie都可以)。原因是什么 对话框: <div id="dialog"> <div id="to_print_data"> My data to print!!!!! </div> Click <a href="#" onclick="window.print(); r
<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>
我的数据要打印!!!!!
点击
@媒体印刷品{
正文*{
可见性:隐藏;
}
#要打印数据,#要打印数据*{
能见度:可见;
}
#打印数据{
位置:绝对位置;
左:0!重要;
顶部:0!重要;
边界:0!重要;
字体大小:16px!重要;
}
}
更新:
我在后台运行一些脚本,找到了导致post请求的原因,在完成打印对话框后30秒左右,请求处于挂起状态。在打印等待post请求完成时,如何在不删除脚本的情况下防止这种行为 我找到了原因。如果后台正在运行某个扩展,则会发出post请求。此请求的挂起状态约为30秒。只有在打印完成后,才会显示对话框。因此,挂起的请求会阻止要打开的打印对话框在我的情况下,在我刷新页面之前,它甚至不会打印,如下所述: @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;
}
可能是特定于您的特定Chrome实例(加载的扩展太多或其他)。如果在匿名模式下尝试,会发生什么情况?如果使用chrome,请使用开发者工具下的“网络”面板查看哪些资源导致加载过程延迟。@RobGrzyb版本为25.0.1364.172 m;所有扩展都是disabled@blachawk网络面板我如何理解显示请求,所以什么都没有there@RobGrzyb在隐姓埋名模式下,我也有同样的行为。。。