1,jquery.cookie.js
這一篇文章已經寫的很詳細了:
http://www.cnblogs.com/afuge/archive/2013/07/03/3169048.html
2,原生js操作cookie
jquery.cookie.js一般會出現cookie不兼容問題就要用原生的js了
//獲得coolie 的值function cookie(name){     var cookieArray=document.cookie.split("; "); //得到分割的cookie名值對       var cookie=new Object();       for (var i=0;i<cookieArray.length;i++){          var arr=cookieArray[i].split("=");       //將名和值分開          if(arr[0]==name)return unescape(arr[1]); //如果是指定的cookie,則返回它的值       }     return ""; } function delCookie(name)//刪除cookie{   document.cookie = name+"=;expires="+(new Date(0)).toGMTString();}function getCookie(objName){//獲取指定名稱的cookie的值    var arrStr = document.cookie.split("; ");    for(var i = 0;i < arrStr.length;i ++){    var temp = arrStr[i].split("=");        if(temp[0] == objName) return unescape(temp[1]);   } }function addCookie(objName,objValue,objHours){      //添加cookie    var str = objName + "=" + escape(objValue);    if(objHours > 0){                               //為時不設定過期時間,瀏覽器關閉時cookie自動消失        var date = new Date();        var ms = objHours*3600*1000;        date.setTime(date.getTime() + ms);        str += "; expires=" + date.toGMTString();   }   document.cookie = str;}function SetCookie(name,value)//兩個參數,一個是cookie的名子,一個是值{     var Days = 30; //此 cookie 將被保存 30 天    var exp = new Date();    //new Date("December 31, 9998");    exp.setTime(exp.getTime() + Days*24*60*60*1000);    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();}function getCookie(name)//取cookies函數        {    var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));     if(arr != null) return unescape(arr[2]); return null;}function delCookie(name)//刪除cookie{    var exp = new Date();    exp.setTime(exp.getTime() - 1);    var cval=getCookie(name);    if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();}</script>3,服務器端處理
 /// <summary>
    /// 將點擊的值存放到Cookie中
    /// </summary>
    PRivate void SetCookieValue(HttpContext context, string dic, string cookieName, string keyName)
    {
        HttpCookie cookie = new HttpCookie(cookieName);//初使化并設置Cookie的名稱
        if (context.Request.Cookies[cookieName] != null)
        {
            cookie = context.Request.Cookies[cookieName];
            if (cookie.Values.Count > 0 && cookie.Values.GetValues(keyName) != null && cookie.Values.GetValues(keyName).Length > 0)
            {
                Remove(cookieName, keyName);
            }
        }
        TimeSpan ts = new TimeSpan(0, 3, 0, 0, 0);//過期時間為3小時
        cookie.Expires = DateTime.Now.Add(ts);//設置過期時間
        cookie.Values.Add(keyName, dic);
        context.Response.AppendCookie(cookie);
        //NCookieUtil.SetCookie(keyName, dic);
    }
    /// <summary>
    /// 將點擊的值從Cookie中取出
    /// </summary>
    public string GetClickValue(HttpContext context, string cookieName, string keyName)
    {
        string userName = "";
        if (context.Request.Cookies[cookieName] != null)
        {
            if (context.Request.Cookies[cookieName][keyName] != null)
            {
                userName = context.Request.Cookies[cookieName][keyName].ToString();
            }
        }
        //userName = NCookieUtil.GetCookie(keyName);
        return userName;
    }
    /// <summary>  
    /// 移除cookie中指定的鍵,若是最后一個鍵則移除這個cookie  
    /// </summary>  
    public static void Remove(string cookieName, string keyName)
    {
        HttpCookie cookie = HttpContext.Current.Request.Cookies[cookieName];
        if (cookie != null)
        {
            if (cookie.Values.Count > 0)
            {
                if (cookie.Values.Count == 1)
                {
                    //若是最后一個鍵則移除這個cookie,否則會多出一個空值  
                    cookie.Values.Remove(HttpUtility.UrlEncode(keyName));
                    cookie.Expires = DateTime.Now.AddDays(-1);
                }
                else
                {
                    cookie.Values.Remove(HttpUtility.UrlEncode(keyName));
                }
                HttpContext.Current.Response.Cookies.Add(cookie);
            }
        }
    }
其實這三種方法還是建議用第二種方法!
新聞熱點
疑難解答