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);

写的不一定正确,但是基本可用~

 

posted @ 2013-04-17 18:51  ZhenJie.W  阅读(1338)  评论(0编辑  收藏  举报