javascriptcookie:有关document.cookie的使用javascript

document.cookie="userId=828";
如果要次存储多个名/值对可以使用分号加空格(; )隔开例如:
document.cookie="userId=828; userName=hulk";
在cookie名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格在cookie名中做
到这点很容易但要保存值是不确定如何来存储这些值呢?思路方法是用escape进行编
它能将些特殊符号使用十 6进制表示例如空格将会编码为“20%”从而可以存储于
cookie值中而且使用此种方案还可以避免中文乱码出现例如:
document.cookie="str="+escape("I love ajax");
相当于:
document.cookie="str=I%20love%20ajax";
当使用escape编码后在取出值以后需要使用unescape进行解码才能得到原来cookie值
这在前面已经介绍过
尽管document.cookie看上去就像个属性可以赋区别但它和属性不改变
赋值并不意味着丢失原来例如连续执行下面两条语句:
document.cookie="userId=828";
document.cookie="userName=hulk";
这时浏览器将维护两个cookie分别是userId和userName因此给document.cookie赋值更像执
行类似这样语句:
document.addCookie("userId=828");
document.addCookie("userName=hulk");
事实上浏览器就是按照这样方式来设置cookie如果要改变个cookie只需重新赋
例如:
document.cookie="userId=929";
这样就将名为userIdcookie值设置为了929
获取cookie
下面介绍如何获取cookiecookie值可以由document.cookie直接获得:
var strCookie=document.cookie;
这将获得以分号隔开多个名/值对所组成这些名/值对包括了该域名下所有cookie
例如:
图7.1显示了输出cookie值由此可见只能够次获取所有cookie值而不能指定cookie
名称来获得指定这正是处理cookie值最麻烦部分用户必须自己分析这个
获取指定cookie值例如要获取userId可以这样实现:
这样就得到了单个cookie
用类似思路方法可以获取个或多个cookie其主要窍门技巧仍然是串和相关操作
给cookie设置终止日期
到现在为止所有cookie都是单会话cookie即浏览器关闭后这些cookie将会丢失事实上这
些cookie仅仅是存储在内存中而没有建立相应硬盘文件
在实际开发中cookie常常需要长期保存例如保存用户登录状态这可以用下面选项来实
现:
document.cookie="userId=828; expires=GMT_String";
其中GMT_String是以GMT格式表示时间这条语句就是将userId这个cookie设置为
GMT_String表示过期时间超过这个时间cookie将消失不可访问例如:如果要将cookie
设置为10天后过期可以这样实现:

删除cookie
为了删除个cookie可以将其过期时间设定为个过去时间例如:
指定可访问cookie路径
默认情况下如果在某个页面创建了个cookie那么该页面所在目录中其他页面也可以访问
该cookie如果这个目录下还有子目录则在子目录中也可以访问例如在
www.xxxx.com/html/a.html中所创建cookie可以被www.xxxx.com/html/b.html或
www.xxx.com/ html/ some/c.html所访问但不能被www.xxxx.com/d.html访问
为了控制cookie可以访问目录需要使用path参数设置cookie语法如下:
document.cookie="name=value; path=cookieDir";
其中cookieDir表示可访问cookie目录例如:
document.cookie="userId=320; path=/shop";
就表示当前cookie仅能在shop目录下使用
如果要使cookie在整个网站WebSite下可用可以将cookie_dir指定为根目录例如:
document.cookie="userId=320; path=/";

指定可访问cookie主机名
和路径类似主机名是指同个域下区别主机例如:www.google.com和gmail.google.com就
是两个区别主机名默认情况下个主机中创建cookie在另个主机下是不能被访问
但可以通过do参数来实现对其控制其语法格式为:
document.cookie="name=value; do=cookieDo";
以google为例要实现跨主机访问可以写为:
document.cookie="name=value;do=.google.com";
这样所有google.com下主机都可以访问该cookie

综合举例:构造通用cookie处理
cookie处理过程比较复杂并具有相似性因此可以定义几个来完成cookie通用
操作从而实现代码复用下面列出了常用cookie操作及其实现
1.添加个cookie:addCookie(name,value,expiresHours)
接收3个参数:cookie名称cookie值以及在多少小时后过期这里约定expiresHours为
0时不设定过期时间即当浏览器关闭时cookie自动消失实现如下:
2.获取指定名称cookie值:getCookie(name)
返回名称为namecookie值如果不存在则返回空其实现如下:
3.删除指定名称cookie:deleteCookie(name)
可以删除指定名称cookie
Tags:  cookie使用 javascript的使用 document.cookie javascriptcookie

延伸阅读

最新评论

发表评论