• 全部
  • 问答

实现关闭标签页退出网站的功能

Garfield2333 2020-09-22 04:15:49
目前网站的设计是当关闭整个浏览器窗口时,会删除cookies里的sessionID,从而再打开页面时需要登录。
但当不关闭整个浏览器,仅关闭网站标签页时(网站只有一个标签页,不会打开新的页面),登录状态则仍会保留,可以绕过登录回到之前登录后的页面。

想实现的功能是当关闭网站页面(标签页)时,可以退出登录状态(比如删除cookies等)。我目前查到的思路有两种:1.利用sessionstorage,关闭标签页可以清除里面的信息,但我不知道怎样用这个去清除cookies。2.直接清除cookies,但是我不知道怎样捕获“关闭标签页”这个动作来触发清除cookies。

希望有人可以指点一下,不是我查到的这两种思路也可以,希望方法不要太复杂。非常谢谢!
...全文
2395 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
風灬雲 2020-09-23
js 能判断出 是关闭标签页 还是关闭整个浏览器吗? 我了解的好像就只有一个beforeunload事件 只能监听当前窗口; 整个浏览器的事件是获取不到的吧;
回复
关闭标签,可以用 onunload 事件 捕获关闭标签的动作 两种写法: 1. <body onunload="clearcookie()"> 2. window.onunload = function() { clearcookie()}
回复
Garfield2333 2020-09-23
引用 6 楼 瑟瑟发抖的小人物 的回复:
你存的是cookie还是session。。。。

在cookie里存的sessionId
回复
尚稻山 2020-09-23
你存的是cookie还是session。。。。
回复
Garfield2333 2020-09-23
引用 2 楼 落落叶叶无声 的回复:
关闭标签,可以用 onunload 事件 捕获关闭标签的动作

两种写法:

1. <body onunload="clearcookie()">
2. window.onunload = function() { clearcookie()}


我今天试了这个,有的浏览器并不支持,包括onbeforeunload也是。而且不知道为什么,虽然我的cookies里有sessionId,但是我在用document.cookie.length查询cookie长度的时候显示的是0,是我不能操作sessionId还是存的位置不对?
回复
Garfield2333 2020-09-23
引用 3 楼 風灬雲 的回复:
js 能判断出 是关闭标签页 还是关闭整个浏览器吗? 我了解的好像就只有一个beforeunload事件 只能监听当前窗口; 整个浏览器的事件是获取不到的吧;


我今天试了一下,onbeforeunload和onunload还根据浏览器不同效果不同,体验不是很好。我想的是能不能把sessionId存到sessionStorage里,不存在浏览器的cookies里,这个有办法实现吗?
回复
chenrynet 2020-09-22
sessionstorage
回复
发帖
JavaScript
创建于2007-09-28

8.5w+

社区成员

Web 开发 JavaScript
申请成为版主
帖子事件
创建了帖子
2020-09-22 04:15
社区公告
暂无公告