cnsystem 网络 Linux 操作系统 javascript cnsystem的博客

JavaScript操作Cookie 插件

赖得解释,直接来代码

//Cookie类
	function Cookie(){
		Cookie.prototype=new Object();//继承自Object
		this.constructor=Cookie;
		//重写toString函数,生成为document.cookie形式的字符串
		Cookie.prototype.toString=function(){
			var data=[];//存放cookie子键
			var _cookie=[];//存放cookie键值对
			for(var prop in this){
				switch(true){
					case prop=="name":
						_cookie[0]=prop;
						continue;
					case prop=="expires":
						_cookie[1]=prop+"="+this[prop];
						continue;
					case prop=="path":
						_cookie[2]=prop+"="+this[prop];
						continue;
					case prop=="secure":
						_cookie[3]=prop+"="+this[prop];
						continue;
					case prop=="domain":
						_cookie[4]=prop+"="+this[prop];
						continue;
				}
				data[data.length]=prop+":"+escape(this[prop]);
			}
			_cookie[0]+="="+data.join("&");
			return _cookie.join(";");
		};
		return this;//返回cookie对象
	}	
	//将字符串格式化为cookie, 静态函数
	Cookie.format=function(str){
		var cookie=new Cookie();
		var start=str.indexOf("=");
		cookie.name=str.substring(0,start);
		var value=str.substring(start+1);
		value=value.split('&');
		for ( var v in value ){
			v=v.split(':');
			this[v[0]]=unescape(v[1]);
		}
		return cookie;
	};
	//获取当前所有cookie, 静态对象
	Cookie.cookies=(function(){
		var cookie=document.cookie;
		var obj;
		cookie=cookie.split(';');
		for (var c in cookie){
			c=Cookie.format(c);
			obj[c.name]=c;
		}
		return obj;
	})();
	//添加cookie, 静态函数
	Cookie.Add=function(cookie){
		if(cookie instanceof Cookie){
			document.cookie=cookie.toString();
		}
		//else console.log("参数错误");
	}
	//删除cookie, 静态函数
	Cookie.Remove=function(cookie){
		if(cookie instanceof Cookie){
			var time=new Data();
			time.setFullYear(time.getFullYear()-10);
			cookie.expires=time.toGMTString();
			document.cookie=cookie.toString();
		}
	}

  

posted @ 2011-07-28 17:50  CNSystem  阅读(251)  评论(0)    收藏  举报
cnsystem 网络 Linux 操作系统 javascript cnsystem的博客