window.print()在Chromium v​​25中的页面重新加载时打开打印对话框

时间:2018-03-19 17:38:46

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

我有一个页面(实际上是网络应用),通过@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驱动的应用程序。

1 个答案:

答案 0 :(得分:0)

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

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