读取Cookie
可以通过document.cookie直接读取cookie的内容:
var strCookie = document.cookie;
此时,strCookie是一个由该域名下的所有cookie的名/值对所组成的字符串,名/值对间以“分号加空格”分隔。为了方便查看,可以使用split()方法将cookie中的名/值对解析出来,得到一个cookie的列表。然后,再使用相应的解码方式,把cookie的值还原出来。
cookie值的解码方式,取决于之前存储cookie时所采用的编码方式。比如使用encodeComponent()函数对值进行编码,则要使用decodeComponent()函数对其值进行解码。代码如下:
function getCookie(name) {
var cookies = document.cookie;
var list = cookies.split("; "); // 解析出名/值对列表
for(var i = 0; i < list.length; i++) {
var arr = list[i].split("="); // 解析出名和值
if(arr[0] == name)
return decodeURIComponent(arr[1]); // 对cookie值解码
}
return "";
}
说明:
许多浏览器(如Google Chrome)不支持在本地文件中直接访问cookie,所以,要确保是在Web服务器中打开文件,否则可能无法进行cookie的读写操作。虽然IE允许对本地文件的cookie的读写操作,但cookie始终是会话级别的,即使通过max-age属性延长了cookie的生存期。
从客户端读取cookie时,name与value之外的其他属性都是不可读的,也不会被提交,浏览器只会提交name与value属性。