我有这个由点击事件触发的 JS 函数。它应该存储一些数据,然后打开一个带有输入表单的窗口。原始代码类似于:
function myClickFunction(){
$('html').mask('Loading...');
SaveData( function(){ //callback function
window.open(...);
$('html').unmask();
});
}
问题是 window.open 被弹出窗口阻止程序阻止。如果我做:
function myClickFunction(){
$('html').mask('Loading...');
SaveData();
$('html').unmask();
window.open(...);
}
它工作得很好,但当然我只想在 SaveData() 完成时打开窗口。
SaveData() 执行 ajax 调用并试图使解决方案 #2 工作我尝试在 ajax 调用中设置 async: false 但这只会阻止我的 $('html').mask('Loading...') 调用.
我的设置类似于https://stackoverflow.com/a/11670238/1480182但另一个问题是它必须在 iPad 上的 Safari 上运行。在这个特定的浏览器中,无法与窗口/选项卡进行通信,这意味着当我打开新窗口时,我会在打开的选项卡上停止任何 js 执行:-(
我应该如何处理这个?