Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung grundlegender Javascript-Operationsbeispiele für Cookies_Javascript-Kenntnisse

Detaillierte Erläuterung grundlegender Javascript-Operationsbeispiele für Cookies_Javascript-Kenntnisse

WBOY
WBOYOriginal
2016-05-16 15:29:001247Durchsuche

Die Beispiele in diesem Artikel beschreiben die grundlegenden Operationen von JavaScript für Cookies. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Es macht Sinn, dass js von Entwicklern wie C# und JAVA beispielsweise als berüchtigte Nebenprogrammiersprache für den Betrieb von Cookies angesehen wird. js verfügt nicht über eine vorgefertigte Lösung ähnlich wie C#, Sie können diese jedoch nur selbst vervollständigen. Als Nächstes werde ich meine Studiennotizen zur Verwendung objektorientierten Denkens zur Verarbeitung von Cookies zum Nutzen der Leser organisieren.

Analyse gängiger Cookie-Vorgänge:

(1) Das Setzen von Cookies umfasst das Hinzufügen und Ändern von Funktionen. Wenn der ursprüngliche Cookie-Name bereits vorhanden ist, ist das Hinzufügen dieses Cookies tatsächlich gleichbedeutend mit dem Ändern dieses Cookies. Beim Setzen eines Cookies kann es einige Optionen geben, die sich auf den Lebenszyklus des Cookies, den Zugriffspfad, die Zugriffsdomäne, die Sicherheit usw. beziehen. Um chinesische Zeichen im Cookie zu speichern, muss der gespeicherte Wert auch in dieser Methode codiert werden.

(2) Übernehmen Sie den Wert eines Cookies. Diese Methode empfängt den Cookie-Namen als Parameter und gibt den Wert des Cookies zurück. Da der Wert beim Speichern codiert wurde, sollte er automatisch decodiert und zurückgegeben werden, wenn der Wert abgerufen wird (Sie können hier tatsächlich festlegen, was zurückgegeben wird, anstatt nur „einen Wert abzurufen“).

(3) Um ein Cookie zu löschen, müssen Sie lediglich das Ablaufereignis eines Cookies auf einen Zeitpunkt in der Vergangenheit setzen. Es erhält den Namen eines Cookies als Parameter und löscht so dieses Cookie (mein). Implementierung ebenfalls auf leer setzen, um die Möglichkeit von Namenskonflikten zu berücksichtigen, wenn in Zukunft mehrere Cookies gesetzt werden sollen.

(4) Andere (Leser dürfen andere Vorgänge selbst in Betracht ziehen, daher werde ich nicht auf Details eingehen.)

Okay, Sie haben sicher erraten, was ich noch einmal sagen werde, richtig, Code ist billig. Schauen Sie sich den Code an:

/* 对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"));
}

Zusätzlich: Javascript-Operations-Cookie-Klasse

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

Verwendung:

1. Cookies setzen

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

2. Cookies lesen

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

3. Löschen

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

Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit der JavaScript-Programmierung befassen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn