javascript - 如何检测子页面中打开的打印预览模式?

标签 javascript jquery html ajax google-chrome

问题: 从页面 A 我有一个到页面 B 的链接,在页面 B 上它在加载时调用 window.print() ,这会打开打印预览模式。我的问题是在页面 A 上,是否有一种简单的方法可以知道页面 B 上的打印预览模式当前是否打开? (我只需要它在 Chrome 上工作)

背景: 我需要完成这项工作的原因是,当 Google Chrome 有一个打开了打印预览模式的子页面时,它会阻止父页面的 Ajax 调用。 相关问题:

Chrome browser unable to make a server call when print preview is opened

Google Chrome blocks ajax requests when print preview is opened on child window

https://code.google.com/p/chromium/issues/detail?id=139706

没有简单的方法可以完全解决这个问题,所以我只想知道打印预览模式是否打开,并警告用户在页面 A 上继续之前关闭页面 B 上的打印模式。

最佳答案

这看起来不可能。 Chrome 不仅会阻止 ajax 执行,还会停止处理页面 A 上的所有脚本。

我认为最好的办法是在页面 B 上提供说明,以便用户打印该页面。任何 Javascript 启动的打印都会暂停页面 A 上的 Javascript 执行。

一个可能的解决方案是在打开页面 B 之前在页面 A 上显示一条消息,以应对这种行为。

编辑:从下面的评论中提取信息

经过进一步思考,最好的解决方案是:在页面 B 上,在调用 window.print() 的脚本中,就在调用 print 之前,将信息发送回页面 A,传达这将要发生,所以该页面 A 可能会采取适当的操作。

关于javascript - 如何检测子页面中打开的打印预览模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31057909/

相关文章:

javascript - 将数组作为参数列表提交给函数

javascript - jQuery/JavaScript : Initiate and terminate a loop with the same button

jquery - 切换内联样式背景色

python - 从 html 获取文本时出现属性错误

javascript - 不显示 PHP 表单操作页面

javascript - 复选框不能独立工作

javascript - Azure Functions Node.js 自定义入口点

javascript - 如何添加类(class)并让 children 专注于按键功能

javascript - 将 JS 变量推送到 PHP、调用 PHP 函数、将结果作为 JSON 字符串获取到 JS 时出现 404,并且在使用它时可能会失败

javascript - 同时运行多个超时