js监测关闭、刷新浏览器

window.onbeforeunload = function () {//窗口关闭前
            console.log(12);
            return '确认要关闭当前窗口?';
        };
window.onunload = function(){//窗口关闭后
          localStorage.setItem('closeTestData',40);

}

不同的浏览器刷新和关闭时对onbeforeunload()和onunload()的执行步骤是不同的;
ie、chrome、360:
页面加载时执行unload();
刷新时先执行onbeforeload(),新页面即将替换旧页面时onunload(),最后unload();
关闭时执行onbeforeload(),再执行onunload().
firefox:
刷新时只执行onunload();
关闭时只执行onbeforeunload().

区分关闭还是刷新:

window.onbeforeunload = function() //author: meizz{
    var n = window.event.screenX - window.screenLeft;
    var b = n > document.documentElement.scrollWidth-20;
    if(b && window.event.clientY < 0 || window.event.altKey)
    {
        alert("是关闭而非刷新");
        window.event.returnValue = ""; //这里可以放置你想做的操作代码
    }else{
        alert("是刷新而非关闭");
    }
}

猜你喜欢

转载自blog.csdn.net/D_claus/article/details/83506256