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,並將失效時間設置為過去的時間。



注意!

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



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