Penjelasan terperinci tentang contoh operasi javascript asas untuk kemahiran cookies_javascript

WBOY
Lepaskan: 2016-05-16 15:29:00
asal
1245 orang telah melayarinya

Contoh dalam artikel ini menerangkan operasi asas JavaScript pada kuki. Kongsikan dengan semua orang untuk rujukan anda, butirannya adalah seperti berikut:

Memang masuk akal bahawa js dianggap sebagai bahasa pengaturcaraan subsidiari yang terkenal oleh pembangun seperti C# dan JAVA, sebagai contoh, untuk pengendalian kuki. js tidak mempunyai penyelesaian siap sedia serupa dengan C#, tetapi anda hanya boleh menyelesaikannya sendiri. Seterusnya, saya akan menyusun nota kajian saya tentang penggunaan pemikiran berorientasikan objek untuk memproses kuki untuk manfaat pembaca.

Analisis operasi kuki biasa:

(1) Menetapkan kuki termasuk menambah dan mengubah suai fungsi Sebenarnya, jika nama kuki asal sudah wujud, maka menambah kuki ini adalah bersamaan dengan mengubah suai kuki ini. Apabila menetapkan kuki, mungkin terdapat beberapa pilihan, yang merujuk kepada kitaran hayat kuki, laluan akses, domain akses, keselamatan, dsb. Untuk menyimpan aksara Cina dalam kuki, nilai yang disimpan juga perlu dikodkan dalam kaedah ini.

(2) Ambil nilai kuki Kaedah ini menerima nama kuki sebagai parameter dan mengembalikan nilai kuki. Oleh kerana nilai telah dikodkan semasa menyimpannya, ia harus dinyahkod secara automatik dan dikembalikan apabila nilai itu diperoleh (anda sebenarnya boleh menetapkan perkara yang dikembalikan di sini, bukannya hanya "mendapatkan nilai").

(3) Padamkan kuki Untuk memadamkan kuki, anda hanya perlu menetapkan peristiwa tamat tempoh kuki pada masa lalu Ia menerima nama kuki sebagai parameter, dengan itu memadam kuki ini (my pelaksanaan juga Tetapkan kepada kosong, ini adalah untuk mempertimbangkan kemungkinan konflik nama apabila berbilang kuki akan ditetapkan pada masa hadapan).

(4) Lain-lain (Pembaca dibenarkan mempertimbangkan operasi lain dengan sendirinya, jadi saya tidak akan menerangkan secara terperinci.)

Baiklah, anda mesti meneka apa yang saya akan katakan lagi, kan, kod itu murah. Lihat kod:

/* 对cookie的操作 */
//创建
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")); // &#63;&#63;&#63;
  Cookie.deleteCookie("test");
  alert(Cookie.getCookie("test"));
}

Salin selepas log masuk

Tambahan: kelas kuki operasi javascript

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

Salin selepas log masuk

Penggunaan:

1. Tetapkan kuki

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

Salin selepas log masuk

2. Baca kuki

//简单获取
cookie .GetCookie("key1");
cookie .GetCookie("key2");
cookie .GetCookie("key3");
cookie .GetCookie("key4");
//获取key4的子键k1值
cookie .GetChild("key4","k1");

Salin selepas log masuk

3. Padam

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

Salin selepas log masuk

Saya harap artikel ini akan membantu semua orang dalam pengaturcaraan JavaScript.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan