问题描述
|
我正在以这种方式打开子窗口供Facebook分享:
window.open(sharingUrl,\'\',\'toolbar=0,status=0,width=626,height=436\');
当用户单击“共享”或“关闭”时,窗口将自动关闭。是否可以向这些事件添加侦听器?解决方法
如果在调用
window.open()
时存储对子窗口的引用,则可以使用window.closed
属性使用setInterval()
进行轮询以查看窗口是否仍处于打开状态。下面的示例每秒检查两次。
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事件并向父窗口发出警报。,为了将来参考,我想分享另一种不需要setInterval
的解决方案:
var child = window.open(\'http://google.com\',height=436\');
child.onunload = function(){ console.log(\'Child window closed\'); };
,这样就可以了
<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>