1. 程式人生 > >js操作cookie方法

js操作cookie方法

cookie

cookie,有時也用其複數形式Cookies,指某些網站為了辨別使用者身份、進行session跟蹤而儲存在使用者本地終端上的資料(通常經過加密)。定義於RFC2109和2965都已廢棄,最新取代的規範是RFC6265。

cookie的作用

伺服器可以利用Cookies包含資訊的任意性來篩選並經常性維護這些資訊,以判斷在HTTP傳輸中的狀態。Cookies最典型的應用是判定註冊使用者是否已 經登入網站,使用者可能會得到提示,是否在下一次進入此網站時保留使用者資訊以便簡化登入手續,這些都是Cookies的功用。另一個重要應用場合是“購物 車”之類處理。使用者可能會在一段時間內在同一家網站的不同頁面中選擇不同的商品,這些資訊都會寫入Cookies,以便在最後付款時提取資訊。

js設定cookie

document.cookie="popped=yes"

js獲取cookie

複製程式碼
function get_cookie(Name) {
   var search = Name + "="//查詢檢索的值
   var returnvalue = "";//返回值
   if (document.cookie.length > 0) {
     sd = document.cookie.indexOf(search);
     if (sd!= -1) {
        sd += search.length;
        end = document.cookie.indexOf(";", sd);
if (end == -1) end = document.cookie.length;
//unescape() 函式可對通過 escape() 編碼的字串進行解碼。 returnvalue
=unescape(document.cookie.substring(sd, end)) } } return returnvalue; }
//使用方式:
get_cookie("popped");
複製程式碼

給cookie設定終止日期

例如:如果要將cookie設定為10天后過期,可以這樣實現:

複製程式碼
//獲取當前時間
var date=new Date();
var
expiresDays=10; //將date設定為10天以後的時間 date.setTime(date.getTime()+expiresDays*24*3600*1000); //將userId和userName兩個cookie設定為10天后過期 document.cookie="userId=828; userName=hulk; expires="+date.toGMTString();

複製程式碼

其中GMT_String是以GMT格式表示的時間字串,這條語句就是將userId這個cookie設定為GMT_String表示的過期時間,超過這個時間,cookie將消失,不可訪問。

刪除cookie 
為了刪除一個cookie,可以將其過期時間設定為一個過去的時間,例如:

//獲取當前時間
var date=new Date();
//將date設定為過去的時間
date.setTime(date.getTime()-10000);
//將userId這個cookie刪除
document.cookie="userId=828; expires="+date.toGMTString(); 

下面封裝上面的方法

複製程式碼
var cookie = {
    set:function(key,val,time){//設定cookie方法
        var date=new Date(); //獲取當前時間
        var expiresDays=time;  //將date設定為n天以後的時間
        date.setTime(date.getTime()+expiresDays*24*3600*1000); //格式化為cookie識別的時間
        document.cookie=key + "=" + val +";expires="+date.toGMTString();  //設定cookie
    },
    get:function(key){//獲取cookie方法
        /*獲取cookie引數*/
        var getCookie = document.cookie.replace(/[ ]/g,"");  //獲取cookie,並且將獲得的cookie格式化,去掉空格字元
        var arrCookie = getCookie.split(";")  //將獲得的cookie以"分號"為標識 將cookie儲存到arrCookie的陣列中
        var tips;  //宣告變數tips
        for(var i=0;i<arrCookie.length;i++){   //使用for迴圈查詢cookie中的tips變數
            var arr=arrCookie[i].split("=");   //將單條cookie用"等號"為標識,將單條cookie儲存為arr陣列
            if(key==arr[0]){  //匹配變數名稱,其中arr[0]是指的cookie名稱,如果該條變數為tips則執行判斷語句中的賦值操作
                tips=arr[1];   //將cookie的值賦給變數tips
                break;   //終止for迴圈遍歷
            }
        },
delete:function(key){ //刪除cookie方法
var date = new Date(); //獲取當前時間
date.setTime(date.getTime()-10000); //將date設定為過去的時間
document.cookie = key + "=v; expires =" +date.toGMTString();//設定cookie
}
return tips; } }
複製程式碼

使用方式:

cookie.set("uesr","sss",24);//設定為24天過期
alert(cookie.get("uesr"));//獲取cookie