【发布时间】:2018-08-28 09:06:10
【问题描述】:
我有一个页面(实际上是网络应用程序),通过@media print 查询定义了可打印区域。
ctrl+p 组合显示 Chromium v65 中的打印预览和 Chromium v25 中的“打印”对话框。我正在尝试将“打印”功能绑定到按钮,并在其点击处理程序中调用 window.print()。在 v65 中它会打开相同的打印预览,但在 v25 中它什么也不做。
当我在浏览器控制台中执行 window.print() 时也会发生同样的情况。
有人可以指导我检查什么来解决这个奇怪的行为吗?
更新
我刚刚注意到在 Chromium v25 控制台中发出的 window.print() 什么都不做,但是在通过 F5 或通过发出 window.location.reload() 重新加载页面后出现打印对话框。因此,它看起来像window.print() 命令卡在执行堆栈中,并在下一个(同一堆栈的)命令执行后被推送执行。
注意:Web 应用程序是使用 webpack 构建的 Vue 驱动的应用程序。
【问题讨论】:
-
这在我看来像是那个版本的一个错误。我检查了一下,它在 v37(我能找到安装的最早版本)中正常工作。也许您可以尝试将其放入异步超时: setTimeout(function() { window.print(); }, 0);
标签: javascript webpack vue.js webpack-dev-server