日期:2014-05-16 浏览次数:20337 次
cookie是浏览器提供的一种机制,它可以将用户访问网站的信息记录下来,可以通过cookie对访问网站的用户进行跟踪
cookie使用的场合(这就是废话!呵呵)
保存用户的登录信息、跟踪用户的行为、定制页面 、创建购物车等;
平时我们很少用js来操作cookie ,不过像网上一些换皮肤的功能都是通过js来操作cookie来控制css的
在JavaScript中,可以通过访问document对象的cookie属性来设置保存在客户端的cookie值。
每个cookie值都是一个“键/值”对,多个cookie值之间使用分号和空格(; )进行分隔。(这个和平时控制cookie没什么区别)
js操作cookie语法
document.cookie = "name=value;expriess=date;path=path;domain=domain_name;secure";
name = value
这是每个cookie必须的部分,name是指cookie的名称,value是该cookie的值。
?
expriess = date;
expriress 变量是一个可选的变量,它定义了cookie有效终止日期。date值必须按照特定的格式书写:
Wdy,DD-Mon-YYY?Y HH:MM:SS GTM,如果不定义此变量,册cookie不会保存在硬盘中,仅保存在内存中,如果要将cookie销毁 则设置 expriress的时间 小于当前时间即可。
?
domain = domain_name
这是个可选变量,它定义了哪些域中的web服务器可读取次cookie,如果不定义此变量那么将会设置cookie的domain变量值为改web的服务器域名。
?
path=path
这个也是可选变量,它定义了web服务器上的哪些路径下的网页可以获取该服务器设置的cookie
?
secure
在cookie中标记改变量,表示只有当前浏览器和web服务器之间的通信协议为加密认证协议时,浏览器才像服务器提交相应的cookie,在当前这中协议只有一种即为HTTPS
?
?
将“键/值”对直接赋值给document.cookie属性,就完成了cookie值的添加
document.cookie = "userId=001"; document.cookie = "username=fox";
?
只要为同名的cookie重新赋值,就可以更改原cookie中保存的值,而其他cookie值不会受到任何影响。
document.cookie="username=jason";
?可以设置cookie的失效时间,这样可以将其值以文本的形式保存在用户的硬盘上。
?
var date = new Date(); date.setTime(date.getTime()+60*1000); document.cookie="userId=001; expires=" + date.toGMTString();
?
?如果想删除某个cookie值,只需把指定cookie的失效时间设置的比当前时间早即可
var date = new Date(); date.setTime(date.getTime()-1); document.cookie="username=jason; expires=" + date.toGMTString();
?
设置可访问cookie的路径
默认情况下,如果在网站的某一页面下创建了一个cookie,那么该页面所在目录下的其他页面也可以访问该cookie,包括该目录的子目录所包含的页面也能访问。
可以在创建cookie时使用path参数指定有权访问该cookie的目录:
document.cookie = "name=value; path=cookieDir";
?
//可以在整个网站中访问名字为username的cookie document.cookie = "username=cooler; path=/"; //只能在photo目录中访问名称为kind的cookie document.cookie = "kind=animal; path=/photo";
?
? 设置可访问cookie的主机名
?可以在创建cookie时通过设置domain参数对访问cookie的主机进行控制
document.cookie = "name=value; domain=cookieDomain"; //在blog.xxx.com 也可以访问 名为www.xxx.com中的cookie document.cookie = "name=value; domain=.xxx.com";