【发布时间】:2020-06-10 09:08:01
【问题描述】:
我正在为我们的慈善机构建立一个需要打印标签的网站。该页面有 2 个主要 div,它们相互重叠。一个 div 包含一个表单,另一个包含需要打印的标签。当用户按下表单上的打印按钮时,表单的 div 设置样式设置为 display:none,另一个 div 设置为 display:block。然后我调用 window.print()
问题是 window.print 是异步的,所以我不知道它什么时候完成。结果,javascript 在切换回表单窗口之前等待 15 秒。这在大多数情况下都可以正常工作,但有时如果用户需要很长时间才能单击 window.print 的打印按钮,我会得到表单的屏幕截图。
我也尝试过 window.onafterprint,但该事件会立即在 Chrome/Android 上发生。
有没有办法可靠地打印包含标签的 div(即知道 print.window 进程何时完成)?请注意,该网站将仅用于慈善机构使用的基于 Android 的平板电脑,因此至少可以限制问题。
【问题讨论】:
-
调用 window.onafterprint() 而不是 window.print()
-
我正在调用 window.onafterprint,但在 Android 上我打印的是表单,而不是标签。在 Windows 上它可以正常工作。这是代码: window.onafterprint= function() { document.getElementById("label").style.display="none"; document.getElementById("wrapper").style.display="block"; } window.print();
标签: javascript android printing