VUE——监听浏览器关闭及标签页关闭事件

简介: VUE——监听浏览器关闭及标签页关闭事件

前言

需求: 当用户关闭浏览器或者标签页的时候,自动退出系统

beforeunload_event: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/beforeunload_event

unload_event: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/unload_event

内容

<template>
  <div id="app">
    <transition
      mode="out-in"
      enter-active-class="fadeInDownBig"
      leave-active-class="fadeOutUpBig"
    >
      <router-view class="animated" />
    </transition>
  </div>
</template>
<script>
import { mapActions } from "vuex";
export default {
  name: "App",
  data() {
    return {
      beforeunloadTime: 0,
      unloadTime: 0
    };
  },
  mounted() {
    window.addEventListener('beforeunload', e => this.beforeunloadHandler(e));
    window.addEventListener('unload', e => this.unload(e));
  },
  destroyed() {
    window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e));
    window.removeEventListener('unload', e => this.unload(e));
  },
  methods: {
    ...mapActions(["logout"]),
    beforeunloadHandler() {
      this.beforeunloadTime = new Date().getTime()
    },
    unload() {
      this.unloadTime = new Date().getTime()
      // window.localStorage.setItem('timer', String(this.unloadTime - this.beforeunloadTime))
      // 本地通过localStorage中的数据看出,关闭事件间隔小于1,刷新则大于8
      if (this.unloadTime - this.beforeunloadTime <= 1) {
        // 执行退出登录
        this.logout(true)
      }
    }
  }
};
</script>

学无止境,谦卑而行.

目录
相关文章
|
16天前
|
Web App开发 搜索推荐 安全
|
1月前
|
JavaScript 前端开发
|
1月前
|
JSON JavaScript 前端开发
vue如何更好的解决浏览器兼容问题
vue如何更好的解决浏览器兼容问题
39 1
|
1月前
|
存储 移动开发 API
如何实现浏览器内多个标签页之间的通信
在浏览器中,可通过三种方式实现多标签页通信:一是利用 `localStorage`,通过设置及监听数据变化实现信息传递;二是借助 `Broadcast Channel API`,在同一频道下双向传输消息;三是运用 `SharedWorker`,作为共享工件在各标签间架起沟通桥梁。每种方法依据实际需求选择使用。
|
30天前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
89 0
|
3月前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
105 1
|
3月前
|
存储 JavaScript 程序员
Vue学习之---浏览器本地存储(8/17)
这篇文章介绍了Vue中浏览器本地存储的使用方法,包括基础知识、localStorage和sessionStorage的代码实例及其测试效果,并提供了相关的API和操作示例。
Vue学习之---浏览器本地存储(8/17)
|
3月前
|
Web App开发 JavaScript 前端开发
如何在浏览器中安装使用Vue开发者工具?Vue开发者工具的安装使用?可直接提取插件安装使用
这篇文章介绍了如何在浏览器中安装和使用Vue开发者工具,提供了两种下载方式,包括直接下载编译好的插件和从GitHub上下载源代码后进行打包。文章还详细说明了在Chrome浏览器中加载插件的步骤,以及插件在Vue项目和非Vue项目中的不同表现。
如何在浏览器中安装使用Vue开发者工具?Vue开发者工具的安装使用?可直接提取插件安装使用
|
3月前
|
JavaScript
VUE——如何兼容IE9|IE10|IE11浏览器
VUE——如何兼容IE9|IE10|IE11浏览器
132 0
VUE——如何兼容IE9|IE10|IE11浏览器
|
3月前
|
存储 JavaScript
纯Vue实现网页日常任务清单小功能(数据存储在浏览器)
这篇文章介绍了如何使用纯Vue实现一个网页日常任务清单的小功能,数据存储在浏览器中以保持数据持久化。文章内容包括功能描述、效果演示、核心代码修改方法,以及已经打包好的项目源码下载链接。作者还提供了友情提示,指出了数据存储到浏览器的核心代码部分,方便读者快速理解和应用。

热门文章

最新文章