JavaScript基礎之Cookie

使用 JavaScript 建立Cookie

JavaScript 可使用 document.cookie 屬性來建立 、讀取、及刪除 cookies。javascript

JavaScript 中,建立 cookie 以下所示:java

document.cookie = 'username=hello world';

您還能夠爲 cookie 添加一個過時時間(以 UTC 或 GMT 時間)。默認狀況下,cookie 在瀏覽器關閉時刪除:瀏覽器

document.cookie="username=hello world; expires=Sat, 22 Oct 2016 13:18:19 GMT";

您可使用 path 參數告訴瀏覽器 cookie 的路徑。默認狀況下,cookie 屬於當前頁面。cookie

document.cookie="username=hello world; expires=Sat, 22 Oct 2016 13:18:19 GMT; path=/";

 

使用 JavaScript 讀取 Cookie

在 JavaScript 中, 可使用如下代碼來讀取 cookies:函數

var x = document.cookie;
    //document.cookie 將以字符串的方式返回全部的 cookies.
    //類型格式: cookie1=value; cookie2=value; cookie3=value;

 

使用 JavaScript 修改 Cookie

在 JavaScript 中,修改 cookies 相似於建立 cookies,以下所示:spa

document.cookie="username=welcome; expires=Sat, 22 Oct 2016 13:18:19 GMT; path=/";

舊的 cookie 將被覆蓋。code

 

使用 JavaScript 刪除 Cookie

刪除 cookie 很是簡單。您只須要設置 expires 參數爲之前的時間便可,以下所示,設置爲 Thu, 01 Jan 1970 00:00:00 GMT:ip

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";

注意,當您刪除時沒必要指定 cookie 的值。字符串

 

Cookie 字符串

document.cookie 屬性看起來像一個普通的文本字符串,其實它不是。get

即便您在 document.cookie 中寫入一個完整的 cookie 字符串, 當您從新讀取該 cookie 信息時,cookie 信息是以名/值對的形式展現的。

若是您設置了新的 cookie,舊的 cookie 不會被覆蓋。 新 cookie 將添加到 document.cookie 中,因此若是您從新讀取document.cookie,您將得到以下所示的數據:

cookie1=value; cookie2=value;

若是您須要查找一個指定 cookie 值,您必須建立一個JavaScript 函數在 cookie 字符串中查找 cookie 值。

 

設置 cookie 值的函數

首先,咱們建立一個函數用於存儲訪問者的名字:

/**
     * 設置一個cookie
     * @param  string  name  cookie名稱
     * @param  string  value cookie值
     * @param  int     time  cookie有效期 單位秒
     */
    function setcookie(name, value, time){
        var d = new Date();
        d.setTime(d.getTime() + time*1000);
        var expires = 'expires=' + d.toUTCString();
        document.cookie = name + '=' + value + '; ' + expires;
    }

 

獲取 cookie 值的函數

而後,咱們建立一個函數用戶返回指定 cookie 的值:

/**
     * 獲取一個cookie的值
     * @param  string  name  cookie名稱
     * @return string        cookie值
     */
    function getcookie(name){
        name = name + '=';
        var cookies = document.cookie.split(';');
        for(var i = 0; i < cookies.length; i ++){
            var ck = cookies[i].trim();
            if(ck.indexOf(name) === 0){
                return ck.substr(name.length, ck.length);
            }
        }
        return '';
    }
相關文章
相關標籤/搜索