注意:区分不了浏览器是触发了刷新还是关闭,而且提示的弹框是无法自定义的;如果有大佬有方法能区分,还请评论学习一下!感谢!
代码可直接复制:
<template>
<div>
<div />
</div>
</template>
<script>
export default {
mounted () {
window.addEventListener('beforeunload', this.beforeunloadHandler)
/*
这里需要注意一下,在vue里我们调用methods的方法经常使用的是this.clickFun(),
但是在这里不需要括号,这里不需要括号,这里不需要括号
*/
},
destroyed () {
// 销毁监听事件
window.removeEventListener('beforeunload', this.beforeunloadHandler)
},
methods: {
beforeunloadHandler (e) {
console.log(e, '刷新或关闭会触发 但不知道是属于刷新还是关闭')
e = e || window.event
// 兼容IE8和Firefox 4之前的版本
if (e) {
e.returnValue = '关闭提示'
}
// Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
return '关闭提示'
}
}
}
</script>
<style>
</style>