腾讯云618限量抢购

JavaScript document cookie 属性:设置或查询与当前文档相关的 cookie

最后更新:2012-11-21 18:50阅读:10452

document cookie 属性定义

cookie 属性可设置或查询与当前文档相关的所有 cookie。语法如下:

document.cookie [ = name1=value1; expire=GMT_String; path=; domain=;]

设置 cookie

设置 cookie 值

现在要设置两个 cookie:

user_id=2;
user_name=admin;

JavaScript 代码如下:

document.cookie = "user_id=2"; 
document.cookie = "user_name=admin";
设置 cookie 过期时间,路径及作用域

下面的例子设置过期时间为一天,路径为网站根目录,所有此域名下的 cookie 都共享:

//获取当前时间 
var date=new Date(); 
date.setTime(date.getTime()+24*3600*1000); 
document.cookie = "user_id=2;path=/;domain=.5idev.com;expire="+date.toGMTString(); 

设置 cookie 有特殊符号

在 cookie 的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格,当值中需要保留这些符号时,需要用 escape() 函数进行编码,它能将一些特殊符号使用十六进制表示。

document.cookie = "test="+escape("JavaScript cookie test");

而在取出值以后再使用 unescape() 进行解码从而得到原来的 cookie 值,这种方法还能有效避免中文乱码等。

获取 cookie 值

通过 document.cookie 可以直接获取当前页面 cookie 的值,得到的是一个字符串。下面的例子读取当前页面的 cookie(如果有的话):

<html>
<body>

<p>与本文档相关的 cookies:</p>
<script type="text/javascript">
document.write(document.cookie)
</script>

</body>
</html>

运行该例子,输出如下(不同的文档及不同浏览器输出内容可能不同):

与本文档相关的 cookies:
PHPSESSID=lk40pcgaqnh1s1545oqvbsrlo3; 
BHvI_2132_widthauto=1;
BHvI_2132_ulastactivity=f1812nHW40njUS8xhWoNcehET9hmgMGu2Bxk2N7yrAjczvtwnxNN;
BHvI_2132_lastcheckfeed=1%7C1352996907;
BHvI_2132_auth=5230MHZEAi0DAOCDQtFhZVCtvcRTHKt%2BwZXXayJd5mjimRBXJHbyKAq2nm570bcBHUK2fJblfSUlmCPPrLn7;
BHvI_2132_nofavfid=1;
BHvI_f9e0_nofavfid=1;
BHvI_f9e0_ulastactivity=65186DADp3j90bfuldtDqrvjeiR08WDS9zEv%2FllVdK%2FF1zUWF7bt

很遗憾 JavaScript 不支持直接通过 name 来获取对应的 cookie 值,需要通过处理得到的 cookies 字符串来实现:

var str_cookie = document.cookie;
var arr_cookie = str_cookie.split("; "); 
var php_session;
//遍历 arr_cookie 数组 
for(var i=0;i<arr_cookie.length;i++){ 
    var arr = arr_cookie[i].split("=");
    //找到名称为userId的cookie
    if("PHPSESSID"==arr[0]){ 
        php_session=arr[1]; 
        break; 
    } 
}
document.write(php_session);

更新 cookie 值

将需要更新的 cookie name 重新设定值即可,如果有过期时间,作用域等也需要一并设定。

删除 cookie 值

要删除一个cookie,将其过期时间设定为一个过去的时间即可:

var date=new Date(); 
date.setTime(date.getTime()-1000); 
document.cookie = "user_id=2;expire="+date.toGMTString(); 

参考阅读

  1. PHP Cookie
  2. JavaScript split:将字符串分割为字符串数组
  3. JavaScript 数组

本章节内容共分 13 部分:
  1. 1. JavaScript Document 对象
  2. 2. JavaScript document 对象集合
  3. 3. JavaScript document cookie 属性:设置或查询与当前文档相关的 cookie
  4. 4. JavaScript document domain 属性:得到当前文档的域名
  5. 5. JavaScript document lastModified 属性:得到文档最后被修改的日期和时间
  6. 6. JavaScript document referrer 属性:得到上一页的 URL 地址
  7. 7. JavaScript document title 属性:得到当前文档的标题
  8. 8. JavaScript document URL 属性:得到当前文档的 URL
  9. 9. JavaScript document getElementById() 方法:根据给定的 id 查找文档元素
  10. 10. JavaScript document getElementByName() 方法:根据给定的 name 属性值查找文档元素
  11. 11. JavaScript document getElementByTagName() 方法:根据给定的元素标签 name 查找文档元素
  12. 12. JavaScript document open() 方法:打开一个新文档
  13. 13. JavaScript document close() 方法:关闭一个由 open 方法打开文档
腾讯云618限量抢购