Javascript 如何检测子页面中打开的打印预览模式?
问题: 从A页我有一个到B页的链接,在B页它在加载时调用window.print(),这将打开打印预览模式。我的问题在A页,有没有一种简单的方法可以知道B页的打印预览模式当前是否打开?(我只需要在Chrome上工作) 背景: 我需要完成这项工作的原因是,当Google Chrome的子页面打开打印预览模式时,它会阻止父页面的Ajax调用。 相关问题:Javascript 如何检测子页面中打开的打印预览模式?,javascript,jquery,html,ajax,google-chrome,Javascript,Jquery,Html,Ajax,Google Chrome,问题: 从A页我有一个到B页的链接,在B页它在加载时调用window.print(),这将打开打印预览模式。我的问题在A页,有没有一种简单的方法可以知道B页的打印预览模式当前是否打开?(我只需要在Chrome上工作) 背景: 我需要完成这项工作的原因是,当Google Chrome的子页面打开打印预览模式时,它会阻止父页面的Ajax调用。 相关问题: 没有简单的方法可以完全解决这个问题,所以我只想知道打印预览模式是否打开,并警告用户在进入A页之前关闭B页的打印模式。这看起来是不可能的。Ch
没有简单的方法可以完全解决这个问题,所以我只想知道打印预览模式是否打开,并警告用户在进入A页之前关闭B页的打印模式。这看起来是不可能的。Chrome不仅会阻止ajax的执行,还会停止处理页面A上的所有脚本 我认为最好的办法是在B页上为用户提供打印页面的说明。任何Javascript启动的打印都将暂停页面A上的Javascript执行 一个可能的解决方案是在打开B页之前在A页上显示一条消息,以预测这种行为 编辑:从下面的评论中提取信息
在进一步思考之后,最好的解决方案是:在调用window.print()的脚本的B页上,在调用print之前,将信息发送回A页,告知这将发生,以便A页可以采取适当的操作。我不认为所有脚本都会停止,我认为它只会阻止Ajax调用。例如,我在父页面上有一个按钮,当我单击它时,它会触发警报()。尽管子页面上打开了打印模式,但该按钮仍在工作。我明白你的意思,所以可能不是所有脚本。但是在我的测试中,除了ajax调用之外,任何间隔或超时脚本都会暂停。在调用window.print()的脚本的第B页上,在调用print之前,将信息发送回第A页,告知这将发生,以便第A页可以采取适当的操作。