Javascript 用户批准阻止弹出窗口打开时的窗口事件?
有许多类似的问题,比如访问被阻止的弹出窗口,但没有一个适合这些情况 用户流:Javascript 用户批准阻止弹出窗口打开时的窗口事件?,javascript,jquery,html,safari,popup-blocker,Javascript,Jquery,Html,Safari,Popup Blocker,有许多类似的问题,比如访问被阻止的弹出窗口,但没有一个适合这些情况 用户流: 用户点击按钮 单击按钮触发异步服务器调用。当服务器调用返回(>1-2秒)时,JavaScript代码打开新窗口(使用相同的域) 如其他问题所述,大多数浏览器都会阻止这个新窗口 我们目前的解决方法是每3秒钟进行一次轮询,查看窗口是否打开。这种方法的问题是代码会打开多个窗口,即使我们只需要一个窗口 从新打开的窗口中使用window.opener似乎不可靠,因为一些答案表明window.opener在FireFox和Saf
- 用户点击按钮
- 单击按钮触发异步服务器调用。当服务器调用返回(>1-2秒)时,JavaScript代码打开新窗口(使用相同的域)
- 如其他问题所述,大多数浏览器都会阻止这个新窗口
- 我们目前的解决方法是每3秒钟进行一次轮询,查看窗口是否打开。这种方法的问题是代码会打开多个窗口,即使我们只需要一个窗口
- 从新打开的窗口中使用
似乎不可靠,因为一些答案表明window.opener
window.opener在FireFox和Safari中无法始终访问
var DownloadWindow = window.open("newURL", "uniqueWindowID");
*** 1-2 seconds later ***
startTest();
function startTest() {
// <DownloadWindow> doesn't exist yet? Set timeout and check back later.
var delayDur = 3000;
if (!DownloadWindow) {
DownloadWindow = openDownloadWindow();
setTimeout(startTest, delayDur);
return;
}
// Do stuff.
}
var DownloadWindow=window.open(“newURL”、“uniqueWindowID”);
***1-2秒后***
startTest();
函数startTest(){
//还不存在?设置超时,稍后再检查。
var delayDur=3000;
如果(!下载窗口){
DownloadWindow=openDownloadWindow();
设置超时(开始测试、延迟测试);
返回;
}
//做事。
}