日期:2014-05-16  浏览次数:20337 次

js操作cookie(一)

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";