Vue中关闭浏览器不会触发onbeforeunload 无效

Vue中关闭浏览器不会触发onbeforeunload 无效是为什么呢?

mounted() {
     window.onbeforeunload = ()=>{
                //通过ajax告诉后台,用户离开页面
                 localStorage.pagehide = true; //无效的
                 //this.likai();
            };
    
}

我主要是想在微信关闭的时候告诉后台用户离开了 但是也是无效的,浏览器上直接测试同样无效,问题出在哪里呢?

阅读 11.8k
4 个回答

ajax-async
ajax-sync
navigator-sendBeacon

后面两个我都试了,好使。
你电脑上打开网页,然后

  1. 手机访问之前,查询一次,
  2. 访问之后查询一次。
  3. 关闭之后查询一次。

你也可以把我代码扒下去,在你的服务上跑

如果想看文章的话。对应的文章是掘金的一篇 juejin-post-5c7e541b6fb9a049e06415a5 你自己拼地址找吧。

如果你只判断用户离开当前页面的话,vue的生命周期 deforeDestroy 页面销毁前执行

新手上路,请多包涵

换个方案,轮询后台,如果后台没有收到数据了,就认为用户离开了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题