天天看点

vue监听浏览器刷新和关闭;

注意:区分不了浏览器是触发了刷新还是关闭,而且提示的弹框是无法自定义的;如果有大佬有方法能区分,还请评论学习一下!感谢!

vue监听浏览器刷新和关闭;

代码可直接复制:

<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>