日期:2014-05-16  浏览次数:20332 次

使用JavaScript实现Cookie的增删改查操作

????? Cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个 cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。

一、JavaScript对Cookie的基本操作?

????? Cookie以键值对的形式来保存数据,保存数据是可以使用如下方式,也可以一次存储多个键值对;当需要设置失效时间时,可以指定expires属性。

document.cookie = "key=value";
document.cookie = "key1=value1;key2=value2......";
//设置失效时间
document.cookie = "key=value;expires=GMT_String";

????? 当键值对中出现特殊字符或者汉字之类的字符时,可以使用escape()方法进行编码,当取值时可以使用unescape()方法进行解码。

//使用escape()方法编码
document.cookie = cName + "=" + escape(cValue) ;
//使用unescape()方法解码
unescape(cValue);

????? 当在Cookie中保存了数据时,可以使用document.cookie来获取数据,返回值为以分号分割的键值对。如果cookie中保存了username=user和password=pass,则通过document.cookie返回一个字符串:“username=user;password=pass”;当我们得到这个字符串时,我们可以通过分割字符串来得到具体的值。

二、使用JavaScript实现对Cookie增上改查的示例

2.1 增加Cookie操作

function setCookie(cName,cValue,cExpire){
	var now = new Date();
	now.setMinutes(now.getMinutes()+cExpire);
	document.cookie = cName + "=" + escape(cValue) + ";expires=" + now.toGMTString();
}

2.2 获取Cookie操作

function getCookie(cName){
	var cookies = document.cookie;
	if(cookies.length>0){
		var cStart = cookies.indexOf(cName+'=');
		if(cStart!=-1){
			cStart = cStart + cName.length + 1;
			cEnd = cookies.indexOf(';',cStart);
			if(cEnd==-1)
				cEnd = cookies.length;
			return unescape(cookies.substring(cStart,cEnd))
		}
	}else{
		return null;
	}
}

2.3 删除Cookie操作

??? 删除cookie就是将某个cookie过期。

function expireCookie(cName){
	var cValue = getCookie(cName);
	setCookie(cName,cValue,-1);
}

?

?

2.4 修改Cookie操作

????修改原有的Cookie,无非就是将原有的键值对重新设置即可。

?

?

?(完) xusweeter @ 2010年08月23日 15:30;

?????