当前位置: 首页 > 文档资料 > HTML 宝典 >

5.1.2 读取Cookie

优质
小牛编辑
128浏览
2023-12-01

可以通过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属性。