JavaScript对cookie的操作

一、cookie的构成:cookie由浏览器保存的以下几块信息构成。

名称:一个唯一确定cookie的名称。cookie的名称必须是经过URL编码的。

值:储存在cookie中的字符串值。值必须被URL编码

域:cookie对于哪个域是有效的。

路径:对于指定域中的那个路径,应该向服务器发送cookie。

失效时间:表示cookie何时应该被删除的时间戳。

安全标志:指定后,cookie只有在使用SSL连接的时候才发送到服务器。

其中,域、路径、失效时间和secure标志都是服务器给浏览器的指示,以指定何时应该发送cookie。这些参数并不会做为发送到服务器的cookie信息的一部分,只有名值对儿才会被发送。

二、由于JavaScript中读写cookie不是非常直观,因此可以封装一个CookieUtil对象简化cookie的功能。如下:

	    var CookieUtil = {
		get: function(name) {
			var cookieName = encodeURIComponent(name) + '=',
			 	cookieStart = document.cookie.indexOf(cookieName),
				cookieValue = null;
			if (cookieStart > -1) {
				var cookieEnd = document.cookie.indexOf(';',cookieStart);
				if (cookieEnd === -1) {
					cookieEnd = document.cookie.length;
				}
				cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
			}
			return cookieValue;
		},
		set: function (name, value, expires, path, domain, secure) {
			var cookieText = encodeURIComponent(name) + '=' +
							 encodeURIComponent(value);
			if (expires instanceof Date) {
				cookieText += '; expires=' + expires.toGMTString();
			}

			if (path) {
				cookieText += '; path=' + path;
			}
			if (domain) {
				cookieText += '; domain=' + domain;
			}
			if (secure) {
				cookieText += '; secure';
			}
			document.cookie = cookieText;
			console.log(document.cookie);
		},
		unset: function (name, path, domain, secure) {
			this.set(name, " ", new Date(0), path, domain, secure);
		}
	}
	CookieUtil.set('name', 'lizuncong');
	CookieUtil.set('mycookie','ismycookie');
	document.write( CookieUtil.get('name') );
	document.write( CookieUtil.get('mycookie'));
没有删除已有cookie的直接方法。所以,需要使用相同的路径、域和安全选项再次设置cookie,并将失效时间设置为过去的时间。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值