創(chuàng)建cookie之后,可能出于各種原因需要將其刪除。比如用戶名與密碼保存一天、一周或者一月等設(shè)置。最近文匯軟件小編就接到了這樣一個(gè)需求。
要求在后臺(tái)管理員賬號無操作15分鐘內(nèi)重新登錄??嗨荚S久想到了刪除cookie這一方式來實(shí)現(xiàn)功能。
惡補(bǔ)了一些相關(guān)知識(shí),小編也是對其有所了了解:
cookie的刪除一般有兩種:
其一:沒有顯示設(shè)置cookie的過期時(shí)間.
如果沒有顯示設(shè)置cookie的過期時(shí)間 ,cookie不會(huì)存入本地硬盤,僅僅保留在內(nèi)存中,關(guān)閉瀏覽器時(shí)就會(huì)自動(dòng)刪除,不用我們控制生命周期。
其二:顯示設(shè)置cookie的過期時(shí)間。
大多時(shí)候cookie的生命周期都是人為設(shè)置的,已達(dá)到某些需求。
比如常見的用戶名密碼保存一個(gè)小時(shí),一天,一周等等,通過Expires屬性即可實(shí)現(xiàn)。
當(dāng)當(dāng)前時(shí)間超過Expires屬性值的時(shí)候cookie就會(huì)被自動(dòng)刪除。
在js中并沒有直接刪除cookie的接口 但是可以利用設(shè)置cookie的過期時(shí)間來實(shí)現(xiàn)刪除功能。
代碼實(shí)例如下:
//取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 中可查看)。
接下來監(jiān)聽頁面上的事件,滿足條件的時(shí)候調(diào)用函數(shù)就OK了。
下面拋一個(gè)問題 ,也是文匯小編在實(shí)現(xiàn)這個(gè)功能時(shí)所遇到的一個(gè)問題“如何監(jiān)聽iframe頁面鼠標(biāo)位置信息”感興趣的小伙伴可以試試,歡迎留言討論。