出于某种原因,下面的卸载事件函数中的代码在加载时立即运行,而不是等待卸载。为什么?
这是一个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.stackoverflow.com', 'Window Unload Test', 'width=500,height=500');
$(popup).unload( function() {
console.log("here");
});
});
答案 0 :(得分:2)
这种情况正在发生,因为当您第一次创建窗口时,它的位置实际上是:空白。然后在请求指定的URL时卸载。
如果您将卸载处理程序更改为console.log(popup.document.location.href)
,您仍会看到它仍为:空白。
为了缓解这种情况,您可能希望在附加卸载处理程序之前等待内容加载。