javaScript如何监听浏览器关闭事件

最近写东西的时候发现需要对浏览器的关闭进行监听,当用户关闭的时候需要调用session.invalid();清空session信息,但是仔细一查手册发现无论是body还是window都没有onclose事件,之后onload,onunload,beforeunload三个事件

然而三个时间无论是哪个都无法单独解决单独监听浏览器关闭的事件,因为在浏览器正常运行时先加载的是beforeunload->onunload->onload 但是麻烦的是如果刷新页面时是执行beforeunload->onunload,如果关闭浏览器的话是执行onunload.如果单单监听onunload的话是无法区别用户是刷新还是关闭窗口的.所以就要用beforeunload来监测了

window.onbeforeunload=onclose;

function onclose()
{
    if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
    {
           removeSession();//这里添加具体的处理方案
    }
}

经过测试,IE7浏览器可以监测监听到 alt+f4 或者单击右上角小叉子退出,但是对于多选项卡浏览的用户貌似无法监听到这点比较可惜~

你可能感兴趣的:(JavaScript)