在我开发的应用程序中,用户可以从几个不同的位置进行打印。在所有这些情况下,我们都使用打开新窗口(或选项卡)的相同工作流程,将需要打印的任何内容写入新窗口的文档,然后调用
$(w.document).ready(function () {
w.focus();
w.print();
w.close();
});
我看到的问题是,在 Chrome 中,如果我关闭为打印预览打开的选项卡或窗口而不是单击取消按钮,Chrome 仍然会阻止我的父窗口上的 javascript。
它与此处描述的问题类似:
在子窗口上打开打印预览时,Google Chrome 会阻止 ajax 请求 https://stackoverflow.com/questions/14462163/google-chrome-blocks-ajax-requests-when-print-preview-is-opened-on-child-window?rq=1
我们也遇到了这个问题,但我相信这是我们在新窗口中实现打印的方式以及 Chrome 的打印预览工作方式的结果。在 IE 和 Firefox 中,打印窗口显示模式对话框,在打印窗口关闭之前,您无法在父窗口中执行任何操作。同样,chrome 会阻止使用父窗口,直到取消打印预览。不过,我希望关闭该选项卡或窗口的效果与取消打印相同。
还有其他人遇到过这个问题或知道好的解决方案吗?
谢谢你!
看来最新的 Chrome 更新已经解决了这个问题...我正在运行 Chrome 版本 36.0.1964.4 dev-m。
我也受到限制,通过执行以下操作来警告用户关闭打印预览窗口:
if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1){ // Chrome Browser Detected?
window.PPClose = false; // Clear Close Flag
window.onbeforeunload = function(){ // Before Window Close Event
if(window.PPClose === false){ // Close not OK?
return 'Leaving this page will block the parent window!\nPlease select "Stay on this Page option" and use the\nCancel button instead to close the Print Preview Window.\n';
}
}
window.print(); // Print preview
window.PPClose = true; // Set Close Flag to OK.
}
现在,Chrome 更新后不再出现该警告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)