Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Einführung in die Verwendung von document.cookie in Javascript

Detaillierte Einführung in die Verwendung von document.cookie in Javascript

黄舟
黄舟Original
2017-03-22 14:35:301194Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung von document.cookie in Javascript sowie die Funktion zum Merken von Passwörtern und zum Speichern von Passwörtern mithilfe von Cookies vorgestellt

Cookie setzen

Jedes Cookie ist ein Name/Wert-Paar. Sie können document.cookie die folgende Zeichenfolge zuweisen:

document.cookie="userId=828";

Wenn Sie Wenn Sie mehrere Name/Wert-Paare gleichzeitig speichern möchten, können Sie Semikolons und Leerzeichen (;) verwenden, um sie zu trennen, zum Beispiel:

document.cookie="userId=828; userName=hulk";

Sie können in Cookie-Namen oder -Werten keine Semikolons (;) verwenden. , Komma (,), Gleichheitszeichen (=) und Leerzeichen.

Das lässt sich leicht im Namen des Cookies machen, aber der zu speichernde Wert ist undefiniert. Wie speichert man diese Werte? Die

-Methode wird mit der Escape()-Funktion codiert, die einige Sonderzeichen hexadezimal ausdrücken kann, zum Beispiel werden Leerzeichen als „20 %“ codiert, die in gespeichert werden können Cookie-Wert, und durch die Verwendung dieser Lösung kann auch das Auftreten verstümmelter chinesischer Zeichen vermieden werden. Zum Beispiel:

document.cookie="str="+escape("I love ajax");

entspricht: document.cookie="str=I%20love%20ajax";

Bei Verwendung der Escape()-Kodierung müssen Sie unescape() verwenden nach dem Extrahieren des Werts), um den ursprünglichen Cookie-Wert zu erhalten, der zuvor eingeführt wurde. Obwohl document.cookie wie eine Eigenschaft aussieht und ihr unterschiedliche Werte zugewiesen werden können. Es unterscheidet sich jedoch von allgemeinen Attributen, wenn Sie beispielsweise die folgenden zwei Anweisungen kontinuierlich ausführen:

document.cookie="userId=828";
document.cookie="userName=hulk";

Zu diesem Zeitpunkt behält der Browser zwei Cookies bei sind userId und userName, daher ähnelt das Zuweisen eines Werts zu document.cookie eher dem Ausführen einer Anweisung wie dieser:

document.addCookie("userId=828");
document.addCookie("userName=hulk");

Tatsächlich setzt der Browser Cookies auf diese Weise, wenn Sie Änderungen vornehmen möchten Um den Wert eines Cookies zu ändern, weisen Sie den Wert einfach neu zu, zum Beispiel:

document.cookie="userId=929";

Dadurch wird der Cookie-Wert namens userId auf 929 gesetzt.

Den Wert des Cookies ermitteln

Im Folgenden wird beschrieben, wie Sie den Wert des Cookies ermitteln. Der Wert des Cookies kann direkt aus document.cookie abgerufen werden:

var strCookie=document.cookie;

Dadurch wird eine Zeichenfolge erhalten, die aus mehreren durch Semikolons getrennten Name/Wert-Paaren besteht, die den Domänennamen Alle Cookies unter enthalten. Beispiel:

Es ist ersichtlich, dass alle Cookie-Werte nur gleichzeitig abgerufen werden können, der Cookie-Name jedoch nicht angegeben werden kann, um den angegebenen Wert zu erhalten. Dies ist der problematischste Teil davon Verarbeitung von Cookie-Werten.

Benutzer müssen diese Zeichenfolge selbst analysieren, um den angegebenen Cookie-Wert zu erhalten. Um beispielsweise den Wert von userId zu erhalten, können Sie Folgendes tun:

Auf diese Weise erhalten Sie den Wert von ein einzelnes Cookie

Mit einer ähnlichen Methode können Sie den Wert eines oder mehrerer Cookies ermitteln. Die Haupttechnik besteht immer noch in den zugehörigen Operationen von Zeichenfolgen und Arrays.

Legen Sie das Ablaufdatum für Cookies fest. Bisher handelte es sich bei allen Cookies um Single-Session-Cookies, das heißt, diese Cookies gehen nach dem Schließen des Browsers verloren. Tatsächlich werden diese Cookies nur im Speicher gespeichert ohne die entsprechenden Festplattendateien einzurichten.

In der tatsächlichen Entwicklung müssen Cookies häufig über einen längeren Zeitraum gespeichert werden, beispielsweise um den Anmeldestatus des Benutzers zu speichern. Dies kann mit den folgenden Optionen erreicht werden:

document.cookie="userId=828;
expires=GMT_String";

wobei GMT_String eine im GMT-Format ausgedrückte Zeitzeichenfolge ist. Diese Anweisung setzt das userId-Cookie auf die durch GMT_String dargestellte Ablaufzeit Das Cookie verschwindet und ist nicht mehr zugänglich. Zum Beispiel:

Wenn Sie ein Cookie so einstellen möchten, dass es nach 10 Tagen abläuft, können Sie das so machen:

<script language="JavaScript" type="text/javascript">
<!-- //获取当前时间
var date=new Date();
var expireDays=10; //将date设置为10天以后的时间
date.setTime(date.getTime()+expireDays*24*3600*1000); //将userId和userName两个cookie设置为10天后过期
document.cookie="userId=828; userName=hulk;
expire="+date.toGMTString(); //-->
</script>

Cookie löschen

Um ein Cookie zu löschen, können Sie dessen Ablaufzeit auf einen Zeitpunkt in der Vergangenheit festlegen, zum Beispiel:

<script language="JavaScript" type="text/javascript">
<!--
//获取当前时间
var date=new Date();
//将date设置为过去的时间
date.setTime(date.getTime()-10000);
//将userId这个cookie删除
document.cookie="userId=828; expire="+date.toGMTString();
//-->
</script>

Geben Sie den Pfad an, über den auf das Cookie zugegriffen werden kann. Wenn auf einer Seite ein Cookie erstellt wird, können standardmäßig auch andere Seiten im Verzeichnis, in dem sich die Seite befindet, auf das

-Cookie zugreifen. Wenn sich unter diesem Verzeichnis Unterverzeichnisse befinden, können Sie auch in den Unterverzeichnissen darauf zugreifen.

Um das Verzeichnis zu steuern, auf das Cookies zugreifen können, müssen Sie den Pfadparameter zum Setzen von Cookies verwenden. Die Syntax lautet wie folgt:

document.cookie="name=value; path=cookieDir";

wobei cookieDir das darstellt Verzeichnis, in dem auf Cookies zugegriffen werden kann. Beispiel:

document.cookie="userId=320; path=/shop";

bedeutet, dass das aktuelle Cookie nur im Shop-Verzeichnis verwendet werden kann.

Wenn Sie Cookies auf der gesamten Website verfügbar machen möchten, können Sie cookie_dir als Stammverzeichnis angeben, zum Beispiel:

document.cookie="userId=320; path=/";

Geben Sie den Hostnamen und den Pfad an, der auf Cookies zugreifen kann Der Hostname bezieht sich auf dieselben verschiedenen Hosts unter einer Domain, zum Beispiel: www.google.com und gmail.google.com sind

zwei verschiedene Hostnamen. Standardmäßig kann auf Cookies, die auf einem Host erstellt wurden, nicht auf einem anderen Host zugegriffen werden, sie können jedoch über den Domänenparameter gesteuert werden. Das Syntaxformat lautet:

document.cookie="name=value;
domain=cookieDomain";

Nehmen Sie Google als Beispiel, um hostübergreifend zu erreichen Zugriff, können Sie schreiben:

document.cookie="name=value;
domain=.google.com";

Auf diese Weise können alle Hoster unter google.com auf das Cookie zugreifen.

Umfassendes Beispiel: Aufbau einer universellen Cookie-Verarbeitungsfunktion Der Cookie-Verarbeitungsprozess ist relativ komplex und weist gewisse Ähnlichkeiten auf. Daher können mehrere Funktionen definiert werden, um die allgemeinen

-Vorgänge von Cookies abzuschließen und so eine Wiederverwendung des Codes zu erreichen. Häufig verwendete Cookie-Operationen und ihre Funktionsimplementierungen sind unten aufgeführt.

1.添加一个cookie:addCookie(name,value,expireHours) 该函数接收3个参数:cookie名称,cookie值,以及在多少小时后过期。

这里约定expireHours为0时不设定过期时间,即当浏览器关闭时cookie自动消失。该函数实现如下:

<script language="JavaScript" type="text/javascript">
<!--
function addCookie(name,value,expireHours){
       var cookieString=name+"="+escape(value);
       //判断是否设置过期时间
       if(expireHours>0){
          var date=new Date();
          date.setTime(date.getTime+expireHours*3600*1000);
          cookieString=cookieString+"; expire="+date.toGMTString();
       }
       document.cookie=cookieString;
}
//-->
</script>

2.获取指定名称的cookie值:getCookie(name)

该函数返回名称为name的cookie值,如果不存在则返回空,其实现如下:

<script language="JavaScript" type="text/javascript">
<!--
function getCookie(name){
       var strCookie=document.cookie;
       var arrCookie=strCookie.split("; ");
       for(var i=0;i<arrCookie.length;i++){
          var arr=arrCookie[i].split("=");
          if(arr[0]==name)return arr[1];
       }
       return "";
}
//-->
</script>

3.删除指定名称的cookie:deleteCookie(name)

该函数可以删除指定名称的cookie,其实现如下:

<script language="JavaScript" type="text/javascript">
<!--
function deleteCookie(name){
       var date=new Date();
       date.setTime(date.getTime()-10000);
       document.cookie=name+"=v; expire="+date.toGMTString();
}
//-->
</script>

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Verwendung von document.cookie in Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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