【问题标题】:Javascript print blocked by chromeJavascript 打印被 chrome 阻止
【发布时间】:2011-07-14 01:17:55
【问题描述】:

我正在尝试从 chrome 运行 javascript window.print()。它第一次打印,但随后的调用(在第一次调用后的一分钟内)失败。 chrome 日志指出“忽略对 print() 的过于频繁的调用。”

     window.print();
 setInterval(function() {
     window.print();
 }, 5000);

找不到解决此问题的方法。有什么想法吗?

提前致谢

【问题讨论】:

  • 适用于我,Chrome 9。它每 5 秒打印一次,但我收到了这条消息。顺便说一下,对话框已经打开时似乎失败了:jsfiddle.net/bBzAb.
  • 你到底为什么要这么做?
  • 我不是,脚本只是为了复制这个问题。我的应用程序包含一个按钮来煽动“打印”
  • 这似乎是代表 Google 做出的错误决定。我想知道何时打印太多实际上是证明这些措施合理性的问题。

标签: javascript google-chrome printing


【解决方案1】:

这似乎是一个设计决定,而不是一个错误。绕过它可能会非常困难。

【讨论】:

  • 谢谢,我已经添加了浏览器检查以查看代理的 chrome、计数器和计时器。如果他们在一分钟内单击按钮 > 一次,我会收到一条微妙的消息,要求他们在没有任何反应的情况下按 Ctrl+P / 打印菜单。
【解决方案2】:

听起来像是 Chrome 的一个深思熟虑的选择,您可能无法绕过。作为替代方案,您可以一次准备所有作业并用分页符将它们分开:

<div style="page-break-after:always"></div>

【讨论】:

    【解决方案3】:

    我发现以下是从 Chrome 启用 JavaScript 打印的解决方法:

    <a href="#" onclick="window.print(); return false;">Click me to Print</a>
    

    似乎将“return false”位添加到 onclick 处理程序让 Chrome 很高兴。

    我认为如果没有它,Chrome 会尝试在某处跟踪链接/重新加载页面。这会导致打印对话框显示任何内容。

    【讨论】:

    • 我不会投反对票。但问题是关于“多次和频繁地调用 window.print”,而不是关于如何启用打印。 “return false”无法阻止这种行为(Chrome v.22)
    【解决方案4】:

    好!错误fixed。 如果我没记错的话,该错误已作为 v.23 的一部分进行了修复。

    因此,如果发布周期是每 6 周一次,并且 Chrome 22 于 9 月 25 日发布,那么 11 月 6 日(大约)修复将在 Chrome 稳定版中

    【讨论】:

      【解决方案5】:

      在 chrome 中,您必须触发 window.location.reload 事件才能触发打印事件。参考来自Chrome: window.print() print dialogue opens only after page reload (javascript)

      这对我有用..

      window.print();
      if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1){
        window.location.reload();
      }
      

      【讨论】:

        猜你喜欢
        • 2012-05-11
        • 2020-12-16
        • 1970-01-01
        • 1970-01-01
        • 2020-11-11
        • 1970-01-01
        • 1970-01-01
        • 2012-10-12
        • 1970-01-01
        相关资源
        最近更新 更多