Привет, есть такая страница:
<doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<button class='empty'>empty</button>
<button class='popup'>popup</button>
</body>
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
$(function(){
$('body button').on('click', function(e) {
var p = window.open(
$(e.target).is('.empty') ? '' : 'popup.html',
"title",
"width = 400, height=200"
);
$(p).on('unload', function(e){
console.log(e.target, 'unload');
});
});
});
</script>
</html>
здесь при нажатии на кнопки empty/popup создается новое окно средствами js (window.open), а также вешается событие на unload ($(p).on('unload')), т.е. при закрытии окна, в консоль должно выводиться сообщение.
Но возникает проблема. При создании пустого окна событие unload обрабатывается как надо, и в появляется только при закрытии всплывающего окна. Однако, если открывать всплывающее окно с адресом страницы (popup.html), то событие отрабатывает почти мгновенно после открытия окна и соответственно не срабатывает при закрытии самого окна.
Кто-нибудь подскажет как решить проблему?
upd. popup.html
<doctype html>
<html>
<head></head>
<body>body</body>
</html>
Скорее всего, unload срабатывает на завершение формирования dom в новом окне. Но как это предотвратить?