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("是刷新而非关闭");
}
}