Js 操做cookie

先寫下cookie的組成:數組

name=<value>[; expires=<date>][; domain=<domain>][; path=<path>][; secure]瀏覽器

名稱=<值>[; expires=<cookie要保存的毫秒值>][; domain=<域>][; path=<路徑>][; 安全]安全

解釋:cookie

  name是cookie的名字; value是必須的,是cookie裏面存儲的值能夠存放不重要的數據,好比用戶名;dom

  剩下的只有expires和secure比較重要了,一個cookie的保存的時間,一個是cookie是否安全的設置。函數

下面會使用一個函數——escape(),這個函數比較重要,由於cookie值裏可能包含分號、逗號或者空格,這個函數會將其編碼。編碼

固然,在讀取cookie值時,必須使用對應的unescape()函數給值解碼。spa

 

1. 向瀏覽器寫回 cookie:code

function setCookie(cookie_name, val, days){
            var date=new Date();
            //cookie保存時間的毫秒值
            date.setTime(date.getTime() + days*24*3600*1000);
            document.cookie=cookie_name + "=" + escape(val)+ 
                            "; expires ="+ expiration.toGMTString() + 
                            "; path=" + "/" + ";domain=" + "mydomain.com" + "; secure";
}

2. 獲取瀏覽器的 cookieblog

//獲取指定名稱的cookie
function getCookie(cookie_name) {
    //獲取cookie數組
    var cookies = document.cookie;
    var cookie_start = cookies.indexOf(cookie_name);
    // 若是找到了索引,就表明cookie存在
    // 反之,就說明不存在。
    if (cookie_start != -1) {
        //獲取value的開始位置
        cookie_start += cookie_name.length + 1;
        //獲取value的結束位置
        var cookie_end = cookies.indexOf(";", cookie_start);
        if (cookie_end == -1) {
            cookie_end = cookies.length;
        }
        var value = unescape(cookies.substring(cookie_start, cookie_end));
        return value;
    }
    //對應的cookie不存在
    return null;
}

3.  刪除指定 cookie

function delCookie(cookie_name){
     var date = new Date();
     //將date設置爲過去的時間
     date.setTime(date.getTime() - 1);
     document.cookie = cookie_name + "= m; expires =" +date.toGMTString();
}

 

將上面的彙總:

var cookie = {
    //設置cookie
    set:function(cookie_name, val, days){
            var date=new Date();
            //cookie保存時間的毫秒值
            date.setTime(date.getTime() + days*24*3600*1000);
            document.cookie=cookie_name + "=" + escape(val)+ 
                            "; expires ="+ expiration.toGMTString() + 
                            "; path=" + "/" + ";domain=" + "mydomain.com" + "; secure";
        },
    
    //獲取指定名稱的cookie
    get:function(cookie_name) {
            //獲取cookie數組
            var cookies = document.cookie;
            var cookie_start = cookies.indexOf(cookie_name);
            // 若是找到了索引,就表明cookie存在
            // 反之,就說明不存在。
            if (cookie_start != -1) {
                //獲取value的開始位置
                cookie_start += cookie_name.length + 1;
                //獲取value的結束位置
                var cookie_end = cookies.indexOf(";", cookie_start);
                if (cookie_end == -1) {
                    cookie_end = cookies.length;
                }
                var value = unescape(cookies.substring(cookie_start, cookie_end));
                return value;
            }
            //對應的cookie不存在
            return null;
        }
        
    //刪除cookie
    del:function(cookie_name){
            var date = new Date();
            //將date設置爲過去的時間
            date.setTime(date.getTime() - 1);
         //獲取要刪除的 cookie
var co = get(cookie_name);
           if(co != null) { //不爲空就刪除 document.cookie
= cookie_name + "= m; expires =" + date.toGMTString();
           } } }

 

4  . 調用:

cookie.set("uesrName","msym",24);//設置爲24天過時
alert(cookie.get("uesrName"));//獲取cookie
cookie.del("uesrName");//刪除cookie

 

 

 

 

 

.

相關文章
相關標籤/搜索