浏览器上用js怎么区分 关闭标签页还是关闭整个浏览器?
现在是想在关闭整个浏览器的时候清空登录信息,关闭标签页的时候不清空?(使用windows,chrome)
浏览器上用js怎么区分 关闭标签页还是关闭整个浏览器?
现在是想在关闭整个浏览器的时候清空登录信息,关闭标签页的时候不清空?(使用windows,chrome)
你可以通过监听 beforeunload
事件来判断用户是关闭标签页还是关闭整个浏览器。当用户尝试关闭浏览器或标签页时,浏览器会触发这个事件。
下面是一个简单的例子:
window.addEventListener('beforeunload', function (e) {
// 当浏览器窗口或标签页被关闭时,会触发 beforeunload 事件。
// 我们可以检查 e.isCancelable 来判断是哪种情况。
if (e.isCancelable) {
// 如果用户尝试关闭浏览器,清空登录信息。
clearLoginInfo();
} else {
// 如果用户尝试关闭标签页,不清空登录信息。
}
});
在这个例子中,clearLoginInfo()
是一个假设的函数,用于清空登录信息。你需要替换为实际的函数。
需要注意的是,不同的浏览器可能会有不同的行为。例如,某些浏览器可能会阻止在 beforeunload
事件中执行任何操作,或者可能会忽略用户的取消操作。因此,你的代码可能不会在所有浏览器中都有效。你可能需要进行一些额外的检查和处理,以确保你的代码可以在不同的环境中正常工作。
不就是现在思否用的,会话会丢,放本地存储。但是这有涉及到安全问题。你自己看,关思否网站,切换一个页面会有一个获取用户信息状态接口。
本地存储F12-应用-本地存储,有 “时间戳|用户登录识别码 + 客户机端ID”来识别用户是否是关闭页签还是关闭整个浏览器。并不是前端单一来判断用户操作。
但是我觉得看你业务慎用方法,我们做系统只要用户关页签就默认你退出系统全部销毁。
6 回答5.3k 阅读✓ 已解决
9 回答9.5k 阅读
5 回答3.8k 阅读✓ 已解决
5 回答8.1k 阅读✓ 已解决
4 回答8.1k 阅读✓ 已解决
7 回答10.2k 阅读
4 回答8.9k 阅读
你用session吧,可以实现你的需求
https://developer.mozilla.org/zh-CN/docs/Web/API/Window/sessi...