【问题标题】:Chrome window.print() opening takes too long timeChrome window.print() 打开时间太长
【发布时间】:2013-03-08 04:24:53
【问题描述】:

我有模态对话框,有一些应该打印的文本和打印链接。因此,当我按打印时,我需要大约 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 秒后处于挂起状态,完成后打印对话出现。在打印等待发布请求完成时,如何防止这种行为,而不删除脚本?

【问题讨论】:

  • 可能特定于您的特定 Chrome 实例(加载的扩展程序过多或其他)。如果您在隐身模式下尝试会发生什么?
  • 如果使用 chrome,请使用开发者工具下的网络面板查看哪些资源导致加载过程延迟。
  • @RobGrzyb 版本为 25.0.1364.172 m;并且所有扩展都被禁用
  • @blachawk 网络面板我如何理解节目请求,所以那里什么都没有
  • @RobGrzyb 在隐身模式下我有同样的行为......

标签: javascript google-chrome chromium


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    在我的情况下,在我刷新页面之前它根本不会打印,如下所述: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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      相关资源
      最近更新 更多