Javascript 知道弹出窗口何时关闭
我有一个用Javascript 知道弹出窗口何时关闭,javascript,jquery,popup,onunload,Javascript,Jquery,Popup,Onunload,我有一个用 var popup = window.open(URL, ...) 弹出窗口的内容不在我的控制范围内 我想知道弹出窗口何时关闭。我想 $(popup).unload() 可以帮助我,但是firefox在弹出窗口出现时触发卸载事件,而不是关闭时 是否有一种方法可以通过开启器知道弹出窗口何时关闭? 我不特别喜欢轮询弹出窗口,每隔500毫秒询问它是否关闭 (我在上找到此解决方案)它似乎是弹出的。如果关闭,location将返回null,如果打开,则返回空集 popup.location
var popup = window.open(URL, ...)
弹出窗口的内容不在我的控制范围内
我想知道弹出窗口何时关闭。我想
$(popup).unload()
可以帮助我,但是firefox在弹出窗口出现时触发卸载事件,而不是关闭时
是否有一种方法可以通过开启器知道弹出窗口何时关闭?
我不特别喜欢轮询弹出窗口,每隔500毫秒询问它是否关闭
(我在上找到此解决方案)它似乎是弹出的。如果关闭,location将返回null,如果打开,则返回空集
popup.location // Open Window
=> Location
No Properties Defined
popup.location // Closed Window
=> null
使用以下各项进行测试:
if (popup.location) {alert('hello')}
如果您可以在弹出窗口中添加一个
onbeforeunload
事件
处理程序
,请尝试以下操作
家长:
function parentCallback(){
alert("popup is closed");
}
var popup = window.open(URL, ...);
window.onbeforeunload = function(){
window.opener.parentCallback();
self.close();
};
var popup = window.open("about:blank"); // Or whatever page you are loading
popup.onunload = function(){
parent.location.reload();
// or
parent.alert("Popup closed!");
// or any other handler in the parent window,
// just remember to call it on the parent object.
};
弹出窗口:
function parentCallback(){
alert("popup is closed");
}
var popup = window.open(URL, ...);
window.onbeforeunload = function(){
window.opener.parentCallback();
self.close();
};
var popup = window.open("about:blank"); // Or whatever page you are loading
popup.onunload = function(){
parent.location.reload();
// or
parent.alert("Popup closed!");
// or any other handler in the parent window,
// just remember to call it on the parent object.
};
或者利用间隔
,这就是我的建议,比如
var pop_win = window.open(url,...);
var timer = setInterval(function() {
if(pop_win.closed) {
clearInterval(timer);
alert('popup is closed');
}
}, 1000);
我知道这个问题有点老了,但对于其他正在寻找答案的人来说,我认为我找到了一个解决方案: 你也许可以这样做(不管怎样,这对我来说很有效,在FF中也是如此): 家长:
function parentCallback(){
alert("popup is closed");
}
var popup = window.open(URL, ...);
window.onbeforeunload = function(){
window.opener.parentCallback();
self.close();
};
var popup = window.open("about:blank"); // Or whatever page you are loading
popup.onunload = function(){
parent.location.reload();
// or
parent.alert("Popup closed!");
// or any other handler in the parent window,
// just remember to call it on the parent object.
};
这个问题已经被提出和回答了。试试看,我不知道这有什么关系。您是否建议在子窗口中添加卸载回调?您是否能够在弹出窗口中添加onbeforeunload回调?我想这需要轮询,但您是否建议轮询弹出对象直到其位置为空?没有其他选择吗?OP状态无法控制弹出窗口中的内容,尽管
onbeforeunload
回调的兼容性如何?好吧,这是唯一的秘密。。。几乎所有的浏览器都支持它。你是唯一一个提到windowRef.closed的人,你得到了我的投票。他不想做民意调查,但不幸的是,如果不这样做,似乎不可能做到正确。你说的parent
,我很确定你的意思是window
<代码>窗口不应根据函数上下文进行更改,据我所知,只有此
会进行更改。