我希望能够判断用户关闭我打开的窗口的时间。这是我试图监控此事的代码:
<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
打开新窗口后立即在原始窗口中。它为什么这样工作?有办法做我想做的事吗?
答案 0 :(得分:25)
窗口首先加载空白页面,然后卸载页面,导致unload
事件
然后你的页面加载。尝试在onload
事件触发时附加事件以避免此事。
document.getElementById('openWindow').onclick = function () {
var windowref = window.open('tests2.html');
windowref.onload = function() {
windowref.onunload = function () {
window.alert('hola!');
};
}
};
答案 1 :(得分:0)
在窗口加载后尝试添加
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!');
};
}
};