Chrome window.print()开放时间过长

时间:2013-03-19 13:09:54

标签: javascript google-chrome chromium

我有模态对话框,有一些应该打印的文字和打印链接。因此,当我按下打印时,在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请求完成时,如何在不删除脚本的情况下防止此行为?

2 个答案:

答案 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;
}