vuejs中监听窗口关闭和窗口刷新事件

时间:2021-04-30 23:48:51

1.使用window.onunload之类的API

window.onbeforeunload = function (e) {
e = e || window.event;

// 兼容IE8和Firefox 4之前的版本
if (e) {
e.returnValue = '关闭提示';
}

// Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
return '关闭提示';
};

2.在生命周期钩子中注册监听事件

methods: {
beforeunloadHandler (e) {
// ...
}
}

在 mounted 钩子中注册事件

mounted() {
window.addEventListener('beforeunload', e => this.beforeunloadHandler(e))
}

在 destroyed 钩子卸载事件

destroyed() {
window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e))
}