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,并将失效时间设置为过去的时间。


智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告