js的cookie操作(兼容中文)
先提供两个方法,这两个方法一个是存cookie,一个是取cookie,这方法可兼容中文的cookie存储
function Get_Cookie(name) { var start = document.cookie.indexOf(name+"="); var len = start+name.length+1; if ((!start) && (name != document.cookie.substring(0,name.length))) return null; if (start == -1) return null; var end = document.cookie.indexOf(";",len); if (end == -1) end = document.cookie.length; return decodeURI(document.cookie.substring(len,end)); } function Set_Cookie(name,value,expires,path,domain,secure) { expires = expires * 60*60*24*1000; var today = new Date(); var expires_date = new Date( today.getTime() + (expires) ); var cookieString = name + "=" +decodeURIComponent(value)/** encodeURIComponent(value) 貌似也行**/ + ( (expires) ? ";expires=" + expires_date.toGMTString() : "") + ( (path) ? ";path=" + path : "") + ( (domain) ? ";domain=" + domain : "") + ( (secure) ? ";secure" : ""); document.cookie = cookieString; }
当要存储cookie 的时候,调用Set_Cookie函数,
Set_Cookie("dynewform_name",zhuname,36500);
例子中"dynewform_name"为设置的cookie的名字, zhuname 为cookie名字的值 ,36500 为存储周期,对于一般的cookie操作来说这三项足够了
传入的其他参数就不做解释了,
当调用存储的cookie的时候,调用Get_Cookie函数
var nameone = Get_Cookie("dynewform_name");
alert(nameone) //==>zhuname
这样就取到了cookie名为dynewform_name的值 有的时候值如果是中文,需要decodeURIComponent
也就是:
var new_nameone = decodeURIComponent(nameone);
写的不一定正确,但是基本可用~