js設置、修改、獲取、刪除 cookie

.......;cookie

上面這串省略號對於各類吐槽的聲音;函數

由於在百度上看到的關於設置cookie的前幾篇文章都是錯誤的;code

白俊遙博客

裏面給出的設置cookie的代碼是這樣的;get

function setCookie(name,value){
    var Days = 30;
    var exp = new Date();
    exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

這個函數只能設置cookie可是不能修改;什麼個意思呢看下圖就明白了;博客

白俊遙博客

由於沒有指定路徑;因此當再次設置同鍵名的cookie時就沒法覆蓋了;string

正確的設置cookie姿式是這樣的;順便把讀取和刪除的也一併送上;
it

/**
 * 設置cookie
 * @param {string} name  鍵名
 * @param {string} value 鍵值
 * @param {integer} days cookie週期
 */
function setCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }else{
        var expires = "";
    }
    document.cookie = name+"="+value+expires+"; path=/";
}

// 獲取cookie
function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

// 刪除cookie
function deleteCookie(name) {
    setCookie(name,"",-1);
}
相關文章
相關標籤/搜索