Cookie的作用范圍、設置、創建、獲取的方法


cookie的作用范圍

同一瀏覽器,同一路徑

默認情況下,

上級目錄設置的cookie,下級目錄可以獲取到,

而下級目錄設置的cookie,上級目錄不能獲取。

即:在一個頁面設置cookie,那么這個頁面的同一路徑和子路徑下的頁面都可以獲取cookie

 

示例如下:family文件夾下有children文件夾和a.html,b.html;chilren文件夾下有aa.html

若在a.html設置cookie:one=father;那么a.html,b.html和aa.html都可以獲取到cookie:one=father;

然后再aa.html設置cookie:two=son,那么只有aa.html可以獲取到cookie:two=son,

a.html和b.html都獲取不到cookie:two=son

 

 

 問題如何讓上級獲取到下級目錄設置的cookie呢

則設置path屬性,

設置整站都可以訪問,上級就可以獲取下級設置的cookie了

document.cookie = "key=value;path=/"

如果還需要設置cookie的到期時間

需要expires屬性

格式為

document.cookie = "key=value;expires=到期時間" 

示例

  var date = new Date();
    //設置有效時間為一個小時,一小時過后,將被瀏覽器刪除
    var expireTime = 30*60 * 1000;
    date.setTime(date.getTime() + expireTime);
    //escape()的作用:一種編碼方式
    document.cookie = "key=value;expires="+ date.toGMTString();

若cookie需設置多個屬性,屬性之間用分號";"隔開

示例同時需要設置expires和path屬性

document.cookie = "key=value;expires=到期時間;path=/" 

 

 

 

 cookie創建的函數

function saveCookie(key, value) {
    var date = new Date();
    //設置過期時間為一個小時
    var expireTime = 60*60 * 1000;
    date.setTime(date.getTime() + expireTime);
    //escape()的作用:一種編碼方式
    //設置cookie過期時間為一小時以后,整站可以訪問cookie
    document.cookie = key + "=" + escape(value) + ";expires="
            + date.toGMTString();+"path=/";
}

獲取cookie函數

function getCookie(key) {
    // 可以搜索RegExp和match進行學習
    var arr, reg = new RegExp("(^| )" + key+ "=([^;]*)(;|$)");
    if (arr = document.cookie.match(reg)) {
        // unescape的作用解碼通過escape編碼的字符串
        return unescape(arr[2]);
    } else {
        return null;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM