【问题标题】:Use System Print Dialog in Chrome in JavaScript在 JavaScript 中使用 Chrome 中的系统打印对话框
【发布时间】:2012-03-17 05:22:24
【问题描述】:

我们遇到了一个问题,即 Chrome 的“打印预览”无法正确打印我们的页面。如果您使用“使用系统打印对话框链接”(Ctrl+Shift+P),它可以很好地打印我们的页面(几乎与 Firefox 相同)。

我们的页面上有一个按钮,它调用 window.print() 来打开打印对话框。但是,在 Chrome 中,它会打开“打印预览”对话框,最终无法正确打印我们的页面。

是否可以通过 JavaScript 直接打印到 Chrome 中的“系统打印对话框”?

附: 我确实知道最终用户如何禁用 chrome://flags 中的打印预览,但我想知道的是,无论如何,当我以编程方式调用 window.print() (或类似方法)时,无论用户设置如何,它都不会显示它.

【问题讨论】:

  • 哪个版本的 Chrome 会出现这个问题?
  • ...“按照语法”? 编辑哦,可能。一个过度活跃的拼写检查器 :-)
  • 如果 Chrome 打印错误您的文档,请提交错误:new.crbug.com 如果您在此处输入 ID,我可以将其放在合适的工程师面前。
  • @MikeWest:感谢您的评论。我将提交一个错误,但发生这种情况的特定 Web 应用程序是专有的。我将不得不创建一个公共测试用例来演示。不过,感谢您的意见和建议。
  • Windows 10 Chromium 59.0.3071.115(官方版本)在挂钩window.matchMedia API 以更改用户在正常window.print() 系统打印框后面看到的页面内容时不一致。 slick 幻灯片小部件打印效果不佳。解决方法:运行unslick,调用window.print() 后重新初始化。在尊重系统打印的 Firefox 中工作。 Chrom* 的打印预览在“加载预览...”时滞后,但它没有可靠地等待window.matchMedia 代码运行。结果:不一致!灰色区域中的用户体验不一致 b/w 浏览器、平台对用户、开发人员、grrrrr 来说是个痛点

标签: javascript google-chrome printing


【解决方案1】:

打印对话框不能使用 JavaScript 编写脚本。它们是浏览器本身的专有部分。

【讨论】:

    【解决方案2】:

    您好,我也面临同样的问题...我什至尝试从脚本中触发键盘事件 ctrl+shift+P 以显示系统打印对话框。

    您可以触发键盘事件并且该问题已成功调度,但是浏览器接收到的 keyCode 的值始终为 0(而不是 ASCII 值“P”)

    https://bugs.webkit.org/show_bug.cgi?id=16735 记录了一个针对 webkit 的相同错误……这里有一些帖子 http://code.google.com/p/chromium/issues/detail?id=27048http://code.google.com/p/chromium/issues/detail?id=52408 在 Safari 和 Chrome 中提到了同样的问题……

    【讨论】:

      猜你喜欢
      • 2015-01-12
      • 2013-08-15
      • 2013-12-07
      • 1970-01-01
      • 2014-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多