Подтвердить что ты не робот

JS: Слушайте, когда закрывается дочернее окно

Я открываю дочернее окно для обмена facebook таким образом:

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

Окно автоматически закрывается, когда пользователь щелкает share или закрывает... Есть ли способ добавить слушателей к этим событиям?

4b9b3361

Ответ 1

Если вы храните ссылку на дочернее окно при вызове 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 и оповещает родительское окно.

Ответ 2

Для будущих ссылок я хотел бы поделиться другим решением, которое не требует setInterval:

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

Ответ 3

Это будет прекрасно работать

   <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>