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; } }