Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅在浏览器关闭时调用函数_Javascript_Vuejs2_Vuex - Fatal编程技术网

Javascript 如何仅在浏览器关闭时调用函数

Javascript 如何仅在浏览器关闭时调用函数,javascript,vuejs2,vuex,Javascript,Vuejs2,Vuex,我有一种情况,只有当浏览器关闭时,我才想清除用户前端会话,如果同一系统的一些选项卡打开,其中一个关闭,我不想做任何事情,如果有页面刷新,我也不想做任何事情,只是在浏览器关闭或所有选项卡关闭时,让我向您展示我的代码 App.vue async created() { window.addEventListener("beforeunload", this.handler); } methods:{ handler(){// eslint-

我有一种情况,只有当浏览器关闭时,我才想清除用户前端会话,如果同一系统的一些选项卡打开,其中一个关闭,我不想做任何事情,如果有页面刷新,我也不想做任何事情,只是在浏览器关闭或所有选项卡关闭时,让我向您展示我的代码

App.vue

    async created() {
        window.addEventListener("beforeunload", this.handler);
    }
methods:{
    handler(){// eslint-disable-line no-unused-vars
    console.log("here");
      sessionMixin.methods.clearSession();
      return null;
    }
  }

虽然这确实有效,但问题是每次刷新和关闭选项卡时都会调用它,这会让用户注销,我不希望这样,有没有办法区分页面刷新/选项卡关闭/浏览器关闭?或其他内容?

在Vue中捕获浏览器的关闭事件,以检查是否必须关闭浏览器。当然,这应该是有效的。这是你至少能做的。但不能完全与关闭事件一起工作。您可以与用户进行检查,而不是覆盖。这是JavaScript的已知问题,而不是vue。现在浏览器中有一个设置,允许用户在关闭浏览器进程之前完成要完成的后台任务。这与我们无关,为什么创建了
异步?@evolutionxbox它包含一些异步后端请求。@Gary你在include事件中失去了我!你能再来一次吗?@uneebmeer我认为浏览器没有能力知道标签关闭和重新加载之间的区别。这两种方式的效果都相同,只是重新加载也会再次加载页面。