创建cookie之后,可能出于各种原因需要将其删除。比如用户名与密码保存一天、一周或者一月等设置。最近文汇软件小编就接到了这样一个需求。
要求在后台管理员账号无操作15分钟内重新登录。苦思许久想到了删除cookie这一方式来实现功能。
恶补了一些相关知识,小编也是对其有所了了解:
cookie的删除一般有两种:
其一:没有显示设置cookie的过期时间.
如果没有显示设置cookie的过期时间 ,cookie不会存入本地硬盘,仅仅保留在内存中,关闭浏览器时就会自动删除,不用我们控制生命周期。
其二:显示设置cookie的过期时间。
大多时候cookie的生命周期都是人为设置的,已达到某些需求。
比如常见的用户名密码保存一个小时,一天,一周等等,通过Expires属性即可实现。
当当前时间超过Expires属性值的时候cookie就会被自动删除。
在js中并没有直接删除cookie的接口 但是可以利用设置cookie的过期时间来实现删除功能。
代码实例如下:
//取cookies function getCookie(name){ let arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)")); if (arr != null) return unescape(arr[2]); return null; } //删除cookie function delCookie(name){ var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval = getCookie(name); if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString()+";path=/"; }
name就是你想要获取或者删除的cookie的名字了(浏览器F12 Application 中可查看)。
接下来监听页面上的事件,满足条件的时候调用函数就OK了。
下面抛一个问题 ,也是文汇小编在实现这个功能时所遇到的一个问题“如何监听iframe页面鼠标位置信息”感兴趣的小伙伴可以试试,欢迎留言讨论。
上一篇: 前端常用的20个字符串方法和使用方式