h5 进入后台 超过1分钟 退出登录

本文介绍了一个JavaScript函数,用于监听页面可见性变化,当页面在后台运行超过预设时间(默认15分钟)后,自动退出登录并刷新页面。通过localStorage管理用户状态和退出时间点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

监听页面应用进入后台

//  超出Time 分后 退出当前登录
export function OutTimeLogOut(ele, Time = 15) {
  if (ele.addEventListener) {
    ele.addEventListener("visibilitychange", function () {
      if (ele.visibilityState == "visible") {
        if (window.localStorage.getItem("user")) {
          // 存在退出Time
          if (window.localStorage.getItem("endTime")) {
            var current = new Date().getTime();
            // 获得退出时间
            let exitTime = window.localStorage.getItem("endTime") - 0;
            // 1分钟

            console.log(current - exitTime, current, exitTime, '时间')
            if (current - exitTime >= 60 * Time * 1000) {
              window.localStorage.removeItem("user");
              window.location.reload();
            }
          }
        }
      }
      if (ele.visibilityState == "hidden") {
        if (window.localStorage.getItem("user")) {
          var endTime = new Date().getTime();
          window.localStorage.setItem("endTime", endTime);
        }
      }
    });
  } else {
    console.log('不会吧')
    ele.attachEvent("visibilitychange", function () {
      if (ele.visibilityState == "visible") {
        if (window.localStorage.getItem("user")) {
          // 存在退出Time
          if (window.localStorage.getItem("endTime")) {
            var current = new Date().getTime();
            // 获得退出时间
            let exitTime = window.localStorage.getItem("endTime") - 0;
            // 1分钟


            if (current - exitTime >= 60 * Time * 1000) {
              window.localStorage.removeItem("user");
              window.location.reload();
            }
          }
        }
      }
      if (ele.visibilityState == "hidden") {
        if (window.localStorage.getItem("user")) {
          var endTime = new Date().getTime();
          window.localStorage.setItem("endTime", endTime);
        }
      }
    });
  }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值