Javascript 在子窗口上打开打印预览模式时,Google Chrome会阻止ajax请求(如何解决?)

Javascript 在子窗口上打开打印预览模式时,Google Chrome会阻止ajax请求(如何解决?),javascript,jquery,html,ajax,google-chrome,Javascript,Jquery,Html,Ajax,Google Chrome,问题: 在子窗口上打开打印预览模式时,Google Chrome会阻止ajax请求 详情: 我有一个网页-ParentPage.html,其中有一个指向子页面-PrintPage.html的链接 a href="PrintPage.html" target="_blank" 然后,在我的PrintPage.html上有调用window.print()的JavaScript 如果用户转到ParentPage.html而没有关闭PrintPage.html上的打印模式,并单击触发Ajax调

问题:

在子窗口上打开打印预览模式时,Google Chrome会阻止ajax请求

详情:

我有一个网页-ParentPage.html,其中有一个指向子页面-PrintPage.html的链接

a href="PrintPage.html"  target="_blank"   
然后,在我的PrintPage.html上有调用
window.print()的JavaScript

如果用户转到ParentPage.html而没有关闭PrintPage.html上的打印模式,并单击触发Ajax调用的某个按钮,它们将被阻止,直到打印模式关闭

这应该是Google Chrome的一个已知问题,其他浏览器(如Firefox)也有类似的问题,但它们不会成为问题,因为它们不允许用户导航到当前打开的打印页面以外的其他选项卡

我在这里找到了相关问题,但没有解决方案:

最好不要阻止父窗口的Ajax。我觉得这是可能的,因为不是所有tab的Ajax调用都被阻止,只有这个父窗口。因此,如果有办法使子页面PrintPage.html不是ParentPage.html的子页面,那就行了

一种不太理想的方法是,当我检测到用户单击ParentPage.html时,关闭PrintPage.html上的打印模式。然后在PrintPage.html处于焦点时重新打开打印模式。重新打开模式部分很容易,但我不知道如何从其他选项卡关闭打印模式

如果以上两种方法都不起作用,我想当打印模式打开并且用户试图单击ParentPage.html上的ajax调用按钮时,我必须显示一个警告。检测打印模式是否从ParentPage.html打开也可能不容易


任何帮助都将不胜感激

看看这个,必须确保在ajax调用之前先关闭谢谢@RobSchmuecker,但这需要我使用window.open(),它是弹出窗口,可能会被浏览器阻止。如果
PrintPage.html
的内容是当前页面的子集,也许您可以使用选择性打印CSS并直接从那里加载打印对话框,这意味着如果不关闭对话框,它们将无法返回到实际的
全脂
页面@RobSchmuecker听起来可行,我试试看!谢谢
$(document).ready(function() {

        window.print();
}