Window:beforeunload 事件 当前窗口关闭或页面刷新事件

需求:

        有些时候需要在当前窗口关闭或页面刷新时进行一些操作,尤其是当前窗口关闭时,要进行操作,比如调接口等。

MDN上对此有介绍:

开发:

        需要对当前页面进行监听,监听当前页面是否触发了刷新或是关闭。此时就用到了生命周期钩子。


  mounted() {
    window.addEventListener('beforeunload', this.handleBeforeUnload);
  },
  destroyed() {
    window.removeEventListener('beforeunload', this.handleBeforeUnload);
  },
  methods: {
    async handleBeforeUnload(event) {
// 需要进行的操作,我这里用到了调取接口,接口请求是异步,异步请求需要时间,需要将异步改为同步,所以用了async和await
      if (this.typeType === 'add') {
        console.log('id参数', this.$refs["tab"].$refs["futian-info"].idList)
        await unlock({
          idList: this.$refs["tab"].$refs["futian-info"].idList
        }).then(res => {

        })
      }
//下面两行代码时浏览器自带的弹窗,我这里不需要就隐藏了,请根据自己的需求情况
      // event.preventDefault();
      // event.returnValue = '';
    }
}

在mounted钩子中使用beforeunload事件去监听当前页面进行的操作,当页面刷新或者当前窗口关闭时就触发了destroyed钩子,在destroyed钩子中对mounted钩子中的监听进行移除。

备注:

使用beforeunload事件时请查看MDN文档中对一些浏览器的适用,有些浏览器和版本并不适用beforeunload事件。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值