【问题标题】:window.print() opens print dialog just on page reload in Chromium v25window.print() 在 Chromium v​​25 中重新加载页面时打开打印对话框
【发布时间】:2018-08-28 09:06:10
【问题描述】:

我有一个页面(实际上是网络应用程序),通过@media print 查询定义了可打印区域。

ctrl+p 组合显示 Chromium v​​65 中的打印预览和 Chromium v​​25 中的“打印”对话框。我正在尝试将“打印”功能绑定到按钮,并在其点击处理程序中调用 window.print()。在 v65 中它会打开相同的打印预览,但在 v25 中它什么也不做。

当我在浏览器控制台中执行 window.print() 时也会发生同样的情况。

有人可以指导我检查什么来解决这个奇怪的行为吗?

更新

我刚刚注意到在 Chromium v​​25 控制台中发出的 window.print() 什么都不做,但是在通过 F5 或通过发出 window.location.reload() 重新加载页面后出现打印对话框。因此,它看起来像window.print() 命令卡在执行堆栈中,并在下一个(同一堆栈的)命令执行后被推送执行。

注意:Web 应用程序是使用 webpack 构建的 Vue 驱动的应用程序。

【问题讨论】:

  • 这在我看来像是那个版本的一个错误。我检查了一下,它在 v37(我能找到安装的最早版本)中正常工作。也许您可以尝试将其放入异步超时: setTimeout(function() { window.print(); }, 0);

标签: javascript webpack vue.js webpack-dev-server


【解决方案1】:

也许您可以尝试将其放入异步超时:

setTimeout(function() { 
  window.print(); 
}, 0);

【讨论】:

  • 不,这没有帮助。另外,我不确定这是否是 Chromium 错误,因为如果不是从 webpack-dev-server 加载网站,它会按预期工作。
  • 请问您为什么对古代版本如此关注? Chrome 具有非常好的自动更新功能,我很肯定全世界不超过 10 人在使用这个确切的版本...
  • 那是因为 Chromium v​​25 是目标浏览器。无法在当前客户端的硬件和操作系统上运行更新的浏览器。
猜你喜欢
  • 2013-09-08
  • 2016-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多