JS:当儿童窗口关闭时听

时间:2011-04-19 05:59:33

标签: javascript

我正在以这种方式打开facebook的子窗口:

window.open(sharingUrl,'','toolbar=0,status=0,width=626,height=436');

当用户点击共享或关闭时,窗口会自动关闭...有没有办法为这些事件添加监听器?

3 个答案:

答案 0 :(得分:112)

如果在调用window.open()时存储对子窗口的引用,则可以使用setInterval()进行轮询,以查看窗口是否仍使用window.closed属性打开。以下示例每秒检查两次。

var child = window.open('http://google.com','','toolbar=0,status=0,width=626,height=436');
var timer = setInterval(checkChild, 500);

function checkChild() {
    if (child.closed) {
        alert("Child window closed");   
        clearInterval(timer);
    }
}

请注意其他人:如果您处于可以控制子窗口中html的情况,则可以使用onbeforeunload事件并提醒父窗口

答案 1 :(得分:6)

为了将来参考,我想分享另一个不需要setInterval的解决方案:

var child = window.open('http://google.com','','toolbar=0,status=0,width=626,height=436');
child.onunload = function(){ console.log('Child window closed'); };

答案 2 :(得分:-2)

这样可以正常使用

   <html>
<head>
<title>Detecting browser close in IE</title>
<script type="text/javascript">

window.onbeforeunload = function(){ myUnloadEvent(); }
function myUnloadEvent() {
    alert ('You can have Ur Logic Here ,');

}

</script>
</head>
</script>
</head>
<body >
<h1>Close the Window now</h1>
</body>
</html>