如何在用户关闭窗口时触发事件,而不是在导航/刷新/等等时触发事件?

时间:2013-02-25 13:20:11

标签: javascript jsp

我需要在用户点击浏览器中的[x]时执行某些操作,而不是因为页面之间的刷新或正常导航而导致页面卸载...

显然我不能依赖onclose,onbeforeunload或onunload事件,因为它们在导航到其他页面或刷新同一页面时也会被触发,而这不是必须完成这些操作的时刻......

我怎样才能完成这个?

1 个答案:

答案 0 :(得分:0)

我不知道这是否适用于除IE之外的其他浏览器(规范声明必须仅在IE中检查...)但这样做有效:

window.onbeforeunload = function() {
    if ((window.event.clientX < 0) || (window.event.clientY < 0) || (window.event.clientX < -80)) { // close button 
        //things to do when the user closes the tab or window pressing the [x]
    } else if (window.event.altKey == true) { // ALT + F4
        //things to do when the user closes with ALT+F4
    } 
};

嗯,如果用户点击书签,这不起作用,因为它也是一个客户端Y&lt; 0 ...