出于
某种原因,下面的卸载事件函数中的代码在加载时立即运行,而不是等待卸载。为什么?
这是一个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");
});
});
发生这种情况是因为当您第一次创建窗口时,它的位置实际上是关于:空白。然后在请求您指定的 URL 时卸载。
如果将卸载处理程序更改为console.log(popup.document.location.href)
则会看到它仍然是关于:空白。
若要缓解此问题,可能需要等待内容加载,然后再附加卸载处理程序。