4

我有模态对话框,应该打印一些文本,并打印链接。所以当我按下打印时,我需要大约 30 秒才能在 chrome 中打开预览对话框(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 秒处于待处理状态。如何在打印等待发布请求完成而不删除脚本时防止这种行为?

4

2 回答 2

4

我找到了原因。如果在后台运行某些扩展,则会发出发布请求。这个请求有大约 30 秒的待处理状态。只有在它完成打印对话后才会出现。所以挂起的请求会阻止打开打印对话框

于 2013-10-28T08:35:51.280 回答
0

在我的情况下,在我刷新页面之前它甚至根本不会打印,如下所述:Chrome: window.print() print dialog 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;
}
于 2014-06-22T23:25:44.883 回答