【发布时间】:2014-12-08 09:41:36
【问题描述】:
我需要提供在成功保存和打印重定向到搜索页面后打印标签的功能。这适用于 chrome、firefox,即 iOS 6/7 safari 等。但是,当从 javascript 发出 window.print() 时,iOS 8 似乎不再停止执行 javascript。
如果您从 iOS 8 Safari 导航到 this jsfiddle example(连接到计算机以便您可以查看控制台日志)并单击打印按钮,您将看到 console.log 将在打印对话框启动时触发。因此,如果您想打印然后导航,您将打印错误的屏幕,除非您有足够的时间来点击打印,这在这种情况下是不可接受的。
我做了一个人为的延迟,因为在 iOS 6/7 中似乎让打印对话框最终停止了 javascript 的执行。在那种情况下,500ms 就足以让它工作。
在 Safari 中的 iOS 8 中执行类似操作时,是否有其他人看到此问题?他们是否引入了一个新的事件来监听,我可以用它来做到这一点?
// Example Code
window.print();
setTimeout(function() {
console.log('This should print after the print is issued in the iOS print dialog.');
}, 500);
【问题讨论】:
-
以下可能与以前版本的 chrome 类似,但似乎并不完全正确,因为 setTimeout 会修复它...Print Window Close Results in Print Preview
-
我仍然很好奇是否有人找到了解决方案,所以请随时回复并告诉我。现在,我将不得不查看 iOS 8 的用户代理,并为打印和重定向设置不同的流程,这将使其成为手动操作来继续类型的事情。提前致谢!
标签: javascript printing ios8 mobile-safari