在JavaScript中在Chrome浏览器中使用系统打印对话框

8
我们有一个问题,Chrome的“打印预览”无法正确打印我们的页面。如果使用“使用系统打印对话框链接”(Ctrl + Shift + P),它会正确地打印我们的页面(与Firefox几乎相同)。
我们的页面上有一个按钮,调用window.print()打开打印对话框。但是,在Chrome中,它会打开“打印预览”对话框,最终无法正确打印我们的页面。
有没有办法使用JavaScript直接在Chrome中打印到“系统打印对话框”?
附言: 我知道最终用户如何在chrome:// flags中禁用打印预览,但我想知道是否有任何方法可以防止它在我以编程方式调用window.print()(或类似方法)时显示,而不管用户设置如何。

这个问题发生在哪个版本的Chrome上? - Nick Beranek
“anagrammatically”?编辑哦,可能是一个过于活跃的拼写检查器 :-) - Pointy
如果Chrome打印您的文件出现错误,请提交bug:http://new.crbug.com/。如果您在此处提供ID,我可以将其放在正确的工程师面前。 - Mike West
@MikeWest:感谢您的评论。我会提交一个bug,但是这个问题发生在专有的网络应用程序上。我需要创建一个公共测试案例来演示。不过还是非常感谢您的建议和意见。 - Lloyd Cotten
Windows 10 Chromium 59.0.3071.115(官方版本)在钩取“window.matchMedia”API以更改用户在正常的“window.print()”系统打印框后看到的页面内容时不一致。 slick幻灯片小部件无法很好地打印。 解决方法:在调用window.print()后运行其unslick,并重新初始化。 在尊重系统打印的Firefox中有效。 Chrome的打印预览在“正在加载预览…”期间存在延迟,但它无法可靠地等待window.matchMedia代码运行。 结果:不一致性! 浏览器和平台之间的灰色区域的用户体验不一致是用户、开发人员的烦恼。 - pd_au
2个回答

2

使用JavaScript无法对打印对话框进行脚本化。它们是浏览器本身的专有部分。


1

你好,我遇到了同样的问题... 我甚至尝试从我的脚本中触发键盘事件ctrl+shift+P以显示系统打印对话框。

你可以触发一个键盘事件,该问题将被成功分派,但是浏览器接收到的keyCode值始终为0(而不是“P”的ASCII值)

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接