前端 -- JavaScript设置cookie

在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 设置:

document.cookie=" name=xiaoming ";

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

var cookieValue=" 小明 ";
document.cookie=" name= "+escape(cookieValue) ;

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

document.cookie=" name=xiaoming ; path=/ ";

设置过期时间为 1 天:

var date=new Date();  // 创建日期对象
var cookieExpire=date.getTime()+24*3600*1000;  // 以微妙计算
document.cookie=" name=xiaoming ; expire= "+cookieExpire;

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

var username="小明";
var password="123456";
var expire=(new Date()).getTime()+1000*3600*24*30;
document.cookie = " username=" + escape(username) + " expire=" + expire + " ; path=/ ; domain=.itxueyuan.org ";
document.cookie = " password=" + escape(password) + " expire=" + expire + " ; path=/ ; domain=.itxueyuan.org ";

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值