Почему это событие выгрузки jquery выполняется сразу после загрузки?
По какой-то причине код в моей функции события выгрузки ниже запускается сразу при загрузке, а не ожидает загрузки. Зачем?
Вот jsfiddle, чтобы вы могли увидеть его в действии: http://jsfiddle.net/dillydadally/hsj8xqtx/
HTML:
<input type="button" value="Click me" id="btn"/>
JavaScript:
$('#btn').click(function() {
var popup = window.open('http://www.stackru.com', 'Window Unload Test', 'width=500,height=500');
$(popup).unload( function() {
console.log("here");
});
});
1 ответ
Это происходит потому, что когда вы впервые создаете окно, его местоположение фактически равно:blank. Затем он выгружается при запросе указанного вами URL.
Если вы измените свой обработчик выгрузки на console.log(popup.document.location.href)
вы увидите его все еще о: пусто.
Чтобы смягчить это, вы можете подождать загрузки контента, прежде чем присоединять обработчик выгрузки.