Javascript 對cookie操作詳解及實例
js 操作 cookie 的方法
cookie
cookie,有時候也用其復數形式Cookies,指某些網站為了辨別用戶身份,進行session跟蹤而儲存在用戶本地終端上的數據(經常通過加密)。定義于RFC2109和2965都已廢棄,最新取代的規(guī)范是RFC6265。
cookie的作用
服務器可以利用Cookie包含信息的任意性來篩選經常性維護這些信息,以判斷在HTTP傳輸中的狀態(tài)。Cookie最典型的英語是判斷注冊用戶是否已經登錄網站,用戶可能會得到提示,是否在下一次進入此網站時保留用戶信息以便簡化登錄步驟,浙西都是Cookie的功能。另一個重要張合是“購物車”之類處理。用戶可能會在一段時間內在同一家網站的不同頁面中選擇不同的商品,這些信息都會寫入Cookie,以便在最后付款時提取信息。
js設置cookie
document.cookie="key=value"; //例 document.cookie="name=weiqi"; //可以在控制臺中打印出cookie console.log(document.cookie);
如何修改和獲取cookie
js中并沒有提供獲取cookie的方法,所以只能自己封裝方法,相同的key的cookie只能存在一個,如果定義了一個document.cookie="age=21",后面又定義了document.cookie="age=30",那么后面定義的cookie會覆蓋前面定義的cookie,所以修改cookie值的時候只用重新定義個key相同的cookie就可以了。那么獲取cookie的時候也只用在cookie中獲取到這個key后面的“=”和“;”直接的字符串,那就是這個cookie的值了,獲取的方法又很多種,這里我寫一種比較簡單的:
function getCookie(key){ var index = document.cookie.indexOf(key); var returnValue; if(index!==-1){ var tIndex = document.cookie.indexOf(";",index); var target = document.cookie.substring(index,tIndex); var returnValue = decodeURIComponent(target.replace(key+"=","")) } return returnValue; } document.cookie="name=weiqi"; getCookie("name"); //weiqi
刪除cookie
cookie是有有效期的,前面我們設置cookie的時候都沒有設置有效期,如果我們將cookie的有效期設置成一個已經過去的時間,那么它就無效了,下面來實現一下:
function delCookie(key){ var d = new Date(); document.cookie=key+"=;expires="+ d.toGMTString(); } document.cookie="name=weiqi"; delCookie("name"); //undefined
給cookie設置一個有效期
通過expires給cookie設置一個有效期,現在我們設置一個cookie的有效期是10天,如下:
var d = new Date(); var time = 10; d.setTime(d.getTime()+time*1000*60*60*24); document.cookie="name=weiqi;expires="+ d.toGMTString();
封裝cookie
將自定義的一些方法完善一下封裝成一個對象,這樣在使用的時候就可以直接拿來用了:
//封裝cookie方法的對象 var cookie = { setCookie:function(key,value,time){ if(key == undefined){ return; } if(time!== undefined){ var d = new Date(); d.setTime(d.getTime()+time*1000*60*60*24); document.cookie=key+"="+value+";expires="+ d.toGMTString(); }else{ document.cookie=key+"="+value; } }, getCookie:function(key){ var index = document.cookie.indexOf(key); var returnValue; if(index!==-1){ var tIndex = document.cookie.indexOf(";",index); var target = document.cookie.substring(index,tIndex); var returnValue = decodeURIComponent(target.replace(key+"=","")) } return returnValue; }, delCookie:function(key){ var d = new Date(); document.cookie=key+"=;expires="+ d.toGMTString(); } } //測試 cookie.setCookie("home") cookie.setCookie("name","衛(wèi)旗"); cookie.setCookie("age",22); cookie.setCookie("sex","男") cookie.getCookie("sex") cookie.delCookie("age")
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
js前端技巧之圖片格式轉換(File、Blob、base64)
這篇文章主要給大家介紹了關于js前端技巧之圖片格式轉換(File、Blob、base64)的相關資料,主要記錄一下比較常見的圖片格式(File、Blob、base64)在不同的場景他們之間的相互轉換的方法,需要的朋友可以參考下2023-04-04在layui框架中select下拉框監(jiān)聽更改事件的例子
今天小編就為大家分享一篇在layui框架中select下拉框監(jiān)聽更改事件的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09