JavaScript操作Cookie 外掛程式,標註已經很清楚了,請看具體代碼:
//Cookie類<br />function Cookie(){<br />Cookie.prototype=new Object();//繼承自Object<br />this.constructor=Cookie;<br />//重寫toString函數,產生為document.cookie形式的字串<br />Cookie.prototype.toString=function(){<br />var data=[];//存放cookie子鍵<br />var _cookie=[];//存放cookie索引值對<br />for(var prop in this){<br />switch(true){<br />case prop=="name":<br />_cookie[0]=prop;<br />continue;<br />case prop=="expires":<br />_cookie[1]=prop+"="+this[prop];<br />continue;<br />case prop=="path":<br />_cookie[2]=prop+"="+this[prop];<br />continue;<br />case prop=="secure":<br />_cookie[3]=prop+"="+this[prop];<br />continue;<br />case prop=="domain":<br />_cookie[4]=prop+"="+this[prop];<br />continue;<br />}<br />data[data.length]=prop+":"+escape(this[prop]);<br />}<br />_cookie[0]+="="+data.join("&");<br />return _cookie.join(";");<br />};<br />return this;//返回cookie對象<br />}<br />//將字串格式化為cookie, 靜態函數<br />Cookie.format=function(str){<br />var cookie=new Cookie();<br />var start=str.indexOf("=");<br />cookie.name=str.substring(0,start);<br />var value=str.substring(start+1);<br />value=value.split('&');<br />for ( var v in value ){<br />v=v.split(':');<br />this[v[0]]=unescape(v[1]);<br />}<br />return cookie;<br />};<br />//擷取當前所有cookie, 靜態對象<br />Cookie.cookies=(function(){<br />var cookie=document.cookie;<br />var obj;<br />cookie=cookie.split(';');<br />for (var c in cookie){<br />c=Cookie.format(c);<br />obj[c.name]=c;<br />}<br />return obj;<br />})();<br />//添加cookie, 靜態函數<br />Cookie.Add=function(cookie){<br />if(cookie instanceof Cookie){<br />document.cookie=cookie.toString();<br />}<br />//else console.log("參數錯誤");<br />}<br />//刪除cookie, 靜態函數<br />Cookie.Remove=function(cookie){<br />if(cookie instanceof Cookie){<br />var time=new Data();<br />time.setFullYear(time.getFullYear()-10);<br />cookie.expires=time.toGMTString();<br />document.cookie=cookie.toString();<br />}<br />}<br />