子窗口关闭时是否可以通知父窗口? (在不同的域名上?)
试图绕过window.opener在不同的域上不工作。
当子窗口关闭时,我是否至少能以某种方式得到通知?
答案 0 :(得分:13)
您无法直接通知窗口关闭,但是您可以通过检查closed
返回的窗口对象引用上的window.open()
属性来关闭子窗口。 / p>
这是一个通过轮询closed
属性在子窗口关闭后5秒内显示警报的示例:
var win = open('http://www.google.com');
var intervalId = setInterval(function() {
if (win.closed) {
clearInterval(intervalId);
alert('Window closed! Hoorah!');
}
}, 5000);
答案 1 :(得分:-1)
使用两段代码的更好解决方案 1 /在弹出窗口中:
$(window).bind('unload',
function(){
window.opener.PopupUnload(window)
})
2 /在父(主窗口)中:
function PopupUnload(wnd){
setTimeout(function(){ // setTimeout is for IE
if(wnd.closed)
alert('You just killed me...')
},10)
}
使用此代码,没有函数称为forever(使用setInterval())并且您在关闭和刷新弹出窗口(post / get)之间做出区别
(在IE8和FF3中测试)