javascript - 检测弹出窗口何时关闭

标签 javascript jquery popup onunload

我有一个弹出窗口:

var popup = window.open(URL, ...) //content of popup is not in my control

我想知道弹出窗口何时关闭,并认为下面的代码可以帮助我。

$(popup).unload()

但是,Firefox 在弹出窗口出现时启动卸载事件,而不是在弹出窗口关闭时启动!

是否有一种可靠的方法可以知道打开程序何时关闭弹出窗口?

我不太喜欢每隔(比如)500 毫秒轮询一次弹出窗口是否关闭...

(我在 How to know when popup is closed in javascript 上找到了这个解决方案)

最佳答案

如果你可以在弹出窗口中添加一个onbeforeunload event handler 然后尝试这样的事情,

parent :

function parentCallback(){
  alert("popup is closed");
}

var popup = window.open(URL, ...);

弹出窗口:

window.onbeforeunload = function(){
    window.opener.parentCallback();
    self.close();
};

否则使用interval,这就是我的建议,比如

var pop_win = window.open(url,...);   
var timer = setInterval(function() {   
    if(pop_win.closed) {  
        clearInterval(timer);  
        alert('popup is closed');  
    }  
}, 1000);  

关于javascript - 检测弹出窗口何时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8898891/

相关文章:

c# - 字符串未定义

delphi - 确保始终选中 TPopup 菜单中的至少一项

javascript - 为什么不显示这个弹出窗口?

.net - 使用 Windows.Forms.Webbrowser.Navigate() 时禁用 Javascript 弹出窗口

Javascript 访问嵌套元素

jquery - 动画结束时振动手机?仅在单击按钮时有效

javascript - pouchdb 删除 allDocs javascript

jquery - HTML、CSS 中带有左右滚动箭头的列表

JavaScript 跨服务器发送和接收数据

javascript - 使用迭代器将 HEX 转换为 RGB - 比使用 .forEach 更好的方法?