关闭刷新页面时触发事件,弹出是否离开此网站确认框,点击确定后退出登录。
mounted(){
this.initGlobalEvent();
},
beforeDestroy(){
this.removeGlobalEvent();
},
methods: {
initGlobalEvent() {
window.addEventListener('beforeunload', this.beforeunloadHandler);
window.addEventListener('unload', this.unloadHandler);
},
removeGloabalEvent() {
window.removeEventListener('beforeunload', this.beforeunloadHandler);
window.removeEventListener('unload', this.unloadHandler);
},
beforeunloadHandler(e) {
if(!window.noPopBeforeUnload){
e = window.event || e;
e.returnValue = '确认关闭?';
return '';
}
},
unloadHandler() {
if(!window.noPopBeforeUnload){
const logoutUrl = 'https://www.abc.com/logout';
if(navigator.sendBeacon){
navigator.sendBeacon(logoutUrl, null);
}else{
window.open(logoutUrl);
window.opener = null;
window.open('', '_self');
window.close();
}
this.removeGlobalEvent();
}
}
}