欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript針對cookie的基本操作實例詳解

 更新時間:2015年11月30日 09:56:14   作者:yurow birdshover  
這篇文章主要介紹了javascript針對cookie的基本操作,結合實例形式較為詳細的分析了JavaScript操作cookie的基本技巧,并給出了一個JavaScript操作cookie的完整類,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了javascript針對cookie的基本操作。分享給大家供大家參考,具體如下:

js被C#、JAVA等開發(fā)者視為聲名狼藉的附屬編程語言是有道理的,比如說,對cookie的操作。js就沒有一套類似C#的現成處理方案,而只能由你自己去完成。下面我就將自己學習的用面向對象的思想對cookie進行處理的學習筆記整理一下,以饗讀者。

cookie的常見操作分析:

(1)設置cookie 包括了添加和修改功能,事實上如果原有cookie 名稱已經存在,那么添加此cookie 就相當于修改了此cookie。在設置cookie 的時候可能還會有一些可選項,用于指cookie  的聲明周期、訪問路徑以及訪問域和安全性等等。為了讓cookie 中能夠存儲中文,該方法中還需要對存儲的值進行編碼。

(2)取一個cookie的值,該方法接收cookie 名稱為參數,返回該cookie 的值。因為在存儲該值的時候已經進行了編碼,所以取值時應該能自動解碼,然后返回(這里其實可以自己設置返回什么,而不單單是"取一個值"而已)。

(3)刪除一個cookie,刪除cookie 只需將一個cookie 的過期事件設置為過去的一個時間即可,它接收一個cookie 的名稱為參數,從而刪除此cookie(我的實現還將cookie名稱設置為空,這是考慮到今后可能會有多個cookie要設置的時候,名稱發(fā)生沖突的情況)。

(4)其他 (這里讓讀者自己去考慮其他的操作,不贅述了。)

好的,你一定又猜到我要說什么了,對頭,code is cheap.看代碼:

/* 對cookie的操作 */
//創(chuàng)建
var Cookie = new Object();
//設置(修改)屬性和方法
Cookie.setCookie = function(sName, sValue, oExpires, sPath, sDomain, bSecure) {
  var sCookie = sName + "=" + escape(sValue); // 名稱和值
  if (oExpires) {
    sCookie += "; expires=" + oExpires.toGMTString(); // 過期時間
  }
  if (sPath) {
    sCookie += "; path=" + sPath; // 訪問路徑
  }
  if (sDomain) {
    sCookie += "; domain=" + sDomain; // 訪問路徑
  }
  if (bSecure) {
    sCookie += "; true"; // 安全性
  }
  document.cookie = sCookie;
}
//獲取
Cookie.getCookie = function(sName) {
  var cookieArray = document.cookie.split(";"); //得到分割的名值對
  var tempCookie = new Object();
  for (var i = 0; i < cookieArray.length; i++) {
    var tempArr = cookieArray[i].split("="); //將名稱和值分開
    if (tempArr[0] == sName) { //如果是指定的cookie,返回它的值
      return unescape(tempArr[1]);
    }
  }
  return "There's no such a cookie name!";
}
//刪除
Cookie.deleteCookie = function(sName, sPath, sDomain) {
  var sCookie = sName + "=; expires=" + (new Date(0)).toGMTString(); // 設置名稱為空,過期時間為0,也可以設置過期時間為負數 (var sCookie = sName + "=; expires=-1"; )
  if (sPath) {
    sCookie += "; path=" + sPath;
  }
  if (sDomain) {
    sCookie += "; domain=" + sDomain;
  }
  document.cookie = sCookie;
}
function test() {
  Cookie.setCookie("test", "cookieTest");
  alert(Cookie.getCookie("test"));
  alert(Cookie.getCookie("test2")); // ???
  Cookie.deleteCookie("test");
  alert(Cookie.getCookie("test"));
}

補充:javascript 操作cookie類

String.prototype.Trim = function()
{
  return this.replace(/^\s+/g,"").replace(/\s+$/g,"");
}
function JSCookie()
{
  this.GetCookie = function(key)
  {
    var cookie = document.cookie;
    var cookieArray = cookie.split(';');
    var getvalue = "";
    for(var i = 0;i<cookieArray.length;i++)
    {
      if(cookieArray[i].Trim().substr(0,key.length) == key)
      {
        getvalue = cookieArray[i].Trim().substr(key.length + 1);
        break;
      }
    }
    return getvalue;
  };
  this.GetChild = function(cookiekey,childkey)
  {
    var child = this.GetCookie(cookiekey);
    var childs = child.split('&');
    var getvalue = "";
    for(var i = 0;i < childs.length;i++)
    {
      if(childs[i].Trim().substr(0,childkey.length) == childkey)
      {
        getvalue = childs[i].Trim().substr(childkey.length + 1);
        break;
      }
    }
    return getvalue;
  };
  this.SetCookie = function(key,value,expire,domain,path)
  {
    var cookie = "";
    if(key != null && value != null)
      cookie += key + "=" + value + ";";
    if(expire != null)
      cookie += "expires=" + expire.toGMTString() + ";";
    if(domain != null)
      cookie += "domain=" + domain + ";";
    if(path != null)
      cookie += "path=" + path + ";";
    document.cookie = cookie;
  };
  this.Expire = function(key)
  {
    expire_time = new Date();
    expire_time.setFullYear(expire_time.getFullYear() - 1);
    var cookie = " " + key + "=e;expires=" + expire_time + ";"
    document.cookie = cookie;
  }
}

用法:

一、設置cookie

var cookie = new JSCookie();
//普通設置
cookie .SetCookie("key1","val1");
//過期時間為一年
var expire_time = new Date();
expire_time.setFullYear(expire_time.getFullYear() + 1);
cookie .SetCookie("key2","val2",expire_time);
//設置域及路徑,帶過期時間
cookie .SetCookie("key3","val3",expire_time,".cnblogs.com","/");
//設置帶子鍵的cookie,子鍵分別是k1,k2,k3
cookie .SetCookie("key4","k1=1&k2=2&k3=3");

二、讀取cookie

//簡單獲取
cookie .GetCookie("key1");
cookie .GetCookie("key2");
cookie .GetCookie("key3");
cookie .GetCookie("key4");
//獲取key4的子鍵k1值
cookie .GetChild("key4","k1");

三、刪除

cookie .Expire("key1");
cookie .Expire("key2");
cookie .Expire("key3");
cookie .Expire("key4");

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

  • 一個JavaScript處理textarea中的字符成每一行實例

    一個JavaScript處理textarea中的字符成每一行實例

    這篇文章主要與大家分享一個JavaScript處理textarea中的字符成每一行實例,很簡單,但很實用,大家可以看看
    2014-09-09
  • 關于img的href和src取變量及賦值的方法

    關于img的href和src取變量及賦值的方法

    這篇文章主要介紹了img的href和src取變量及賦值的方法,需要的朋友可以參考下
    2014-04-04
  • js實現簡單秒表走動的時鐘特效

    js實現簡單秒表走動的時鐘特效

    這篇文章主要為大家詳細介紹了js實現簡單秒表走動的時鐘特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • 最簡單的JavaScript圖片輪播代碼(兩種方法)

    最簡單的JavaScript圖片輪播代碼(兩種方法)

    基于javascript代碼實現最簡單的圖片輪播效果,非常簡單,本文通過兩種方式給大家介紹最簡單的圖片輪播,感興趣的朋友一起學習吧
    2015-12-12
  • 解決微信小程序scroll-view組件無橫向滾動的問題

    解決微信小程序scroll-view組件無橫向滾動的問題

    這篇文章主要介紹了微信小程序scroll-view組件無橫向滾動的解決方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • IE與Firefox在JavaScript上的7個不同寫法小結

    IE與Firefox在JavaScript上的7個不同寫法小結

    盡管那需要用長串的、沉悶的不同分支代碼來應付不同瀏覽器的日子已經過去,偶爾還是有必要做一些簡單的區(qū)分和目標檢測來確保某塊代碼能在用戶的機器上正常運行。
    2009-09-09
  • uniapp中vuex的應用使用步驟

    uniapp中vuex的應用使用步驟

    Vuex是一個專為Vue.js應用程序開發(fā)的狀態(tài)管理模式,它采用集中式存儲管理應用的所有組件的狀態(tài),并以相應的規(guī)則保證狀態(tài)以一種可預測的方式發(fā)生變化,下面這篇文章主要給大家介紹了關于uniapp中vuex的應用使用,需要的朋友可以參考下
    2022-08-08
  • js中繼承的幾種用法總結(apply,call,prototype)

    js中繼承的幾種用法總結(apply,call,prototype)

    本篇文章主要介紹了js中繼承的幾種用法總結(apply,call,prototype) 需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • javascript中String類的subString()方法和slice()方法

    javascript中String類的subString()方法和slice()方法

    最近在看《Javascript高級程序設計》一書,在書中發(fā)現一些以前沒有接觸過的且比較實用的技巧和知識點,想通過博客記錄一下,以加深記憶。
    2011-05-05
  • 可拖拽組件slider.js使用方法詳解

    可拖拽組件slider.js使用方法詳解

    這篇文章主要為大家詳細介紹了可拖拽組件slider.js的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評論