您的位置:首页 > Web前端 > JavaScript

JavaScript设置cookie

2015-11-16 13:35 537 查看
在JavaScript中,使用 document.cookie 来设置 cookie 。

语法:

document.cookie=" name=value ; expire=GMT_String ; path=cookieDir ; domain=cookieDomain "

对cookie格式的说明

键/值 对说明
name=value必需。设置cookie的名称和值,一次只能设置一个。

在cookie的名称或值中不会出现分号( ; )、逗号( , )、等号( = )、空格以及中文等,否则将会被浏览器编码。在cookie的名称中做到这点很容易(名称一般是开发人员设定好的),但是保存的值是不确定的,如何来存储这些值呢?方法是用escape()函数进行编码,它能将一些特殊符号使用十六进制表示,例如空格将会编码为“20%”,从而可以存储于cookie值
中,而且使用此种方案还可以避免中文乱码的出现。

例如,将“小明”存入cookie:

document.cookie="username="+eacape("小明");
expire=GMT_String可选。设置cookie的过期时间。

默认情况下(不设置expire),用户关闭浏览器时会销毁cookie,这些cookie仅仅是存储在内存中,而没有建立相应的硬盘文件。在实际开发中,cookie 通常需要长期保存,例如保存用户登录的状态,可以通过设置 cookie 的过期时间来实现。

过期时间是以GMT格式表示的时间字符串,超过这个时间,cookie将消失,不可访问。

例如,如果要将cookie设置为10天后过期:

var date=new Date(); // 更多请参考 JavaScript Date 对象

var expireDays=10;

date.setTime(date.getTime()+expireDays*24*3600*1000);
path=cookieDir可选。设置cookie的有效路径。

默认情况下(不设置path),cookie只在当前路径下有效,路径范围之外不能访问该cookie。例如,在 /javascript/jiaocheng/ 路径下设置的cookie,只能被 /javascript/jiaocheng/ 路径下的文件以及子目录下的文件访问。

要使 cookie 全站有效,请设置 path=/ 。
domain=cookieDomain可选。设置cookie的有效域名。

默认情况下(不设置 domain),cookie 只在当前域名下有效。例如,在 demo.itxueyuan.org 下设置的 cookie ,不能在 javascript.itxueyuan.org 域名下访问。

要使 cookie 在 itxueyuan.org 的所有二级域名和主域名下都有效,请设置 domain=.itxueyuan.org
请看下面几个设置 cookie 的例子。

最简单的 cookie 设置:

?
对 cookie 的值进行 escape() 编码:

?
设置有效路径为全站有效:

?
设置过期时间为 1 天:

?
举例,将IT学院会员的用户名和密码保存到cookie,过期时间一个月,全站有效,所有域名有效:

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: