在做JavaScript操作cookie时网上的东西很多,但是大多数都没有说cookie的那些可选属性是不可读的(path、domain、expires、secure)
Cookie是一个键值对形式的字符串。
需要注意的是,用这个方法一次只能对一个cookie进行设置或更新。
- 以下可选的cookie属性值可以跟在键值对后,用来具体化对cookie的设定/更新,使用分号以作分隔:
;path=path
(例如 '/', '/mydir') 如果没有定义,默认为当前文档位置的路径。;domain=domain
(例如 'example.com', '.example.com' (包括所有子域名), 'subdomain.example.com') 如果没有定义,默认为当前文档位置的路径的域名部分。;max-age=max-age-in-seconds
(例如一年为60*60*24*365);expires=date-in-GMTString-format
如果没有定义,cookie会在对话结束时过时;secure
参考https://developer.mozilla.org/zh-CN/docs/Web/API/Document/cookie
function getCookies(cName){
var strCookie = document.cookie;
if(strCookie.length > 0){
var cStart = strCookie.indexOf(cName+":");
if(cStart != -1){
cStart = cStart + cName.length + 1;
var cEnd = strCookie.indexOf(";",cStart);
/*
在cookie字符串的最后是不会有';'的所以得有下面的判断否则取出来的是从0-cStart的字符串
substring()不接受负值参数;
如果有负值的参数将其值变为0;
两参数值,取较小的值为开始位置,截取字符串长度为较大值与较小值的差。
*/
if(cEnd == -1){
cEnd = document.cookie.length;
}
return strCookie.substring(cStart,cEnd);
}
}
return "";
}