Почему окно.открытый.)…(onunload = function () { ... } не работает, как я ожидаю?
Я хочу иметь возможность сказать, когда окно, которое я открываю, закрывается пользователем. Это код моей попытки контролировать это:
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
window.document.onready = function () {
document.getElementById('openWindow').onclick = function () {
var windowref = window.open('tests2.html');
windowref.onunload = function () {
window.alert('hola!');
};
};
};
</script>
</head>
<body>
<button id='openWindow'>Open Window</button>
</body>
</html>
Я ожидал бы, что это предупредит " hola!"в исходном окне после окна, которое было открыто с window.open
была закрыта. Вместо этого он предупреждает: "hola!"в исходном окне сразу после открытия нового окна с window.open
. Почему это так работает? Есть ли способ сделать то, что я хочу сделать?
2 ответов
окно сначала загружается пустой страницей, а затем выгружает страницу, вызывая unload
событие.
Затем ваша страница загружается. Попробуйте прикрепить событие, когда onload
событие срабатывает, чтобы избежать этого.
document.getElementById('openWindow').onclick = function () {
var windowref = window.open('tests2.html');
windowref.onload = function() {
windowref.onunload = function () {
window.alert('hola!');
};
}
};
попробуйте добавить после загрузки окна
document.getElementById('openWindow').onclick = function () {
var windowref = window.open('tests2.html');
windowref.window.onload = function(){ //wait til load to add onunload event
windowref.window.onunload = function () {
window.alert('hola!');
};
}
};