Les exemples de cet article décrivent les opérations de base de JavaScript sur les cookies. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Il est logique que js soit considéré comme un langage de programmation subsidiaire notoire par des développeurs tels que C# et JAVA, par exemple, pour le fonctionnement des cookies. js n'a pas de solution toute faite similaire à C#, mais vous ne pouvez la compléter que vous-même. Ensuite, j'organiserai mes notes d'étude sur l'utilisation de la pensée orientée objet pour traiter les cookies au profit des lecteurs.
Analyse des opérations courantes sur les cookies :
(1) Le paramétrage des cookies inclut des fonctions d'ajout et de modification. En effet, si le nom du cookie d'origine existe déjà, alors l'ajout de ce cookie équivaut à modifier ce cookie. Lors de la configuration d'un cookie, certaines options peuvent être disponibles, qui font référence au cycle de vie du cookie, au chemin d'accès, au domaine d'accès, à la sécurité, etc. Afin de stocker les caractères chinois dans le cookie, la valeur stockée doit également être codée selon cette méthode.
(2) Prendre la valeur d'un cookie. Cette méthode reçoit le nom du cookie en paramètre et renvoie la valeur du cookie. Étant donné que la valeur a été codée lors de son stockage, elle doit être automatiquement décodée et renvoyée lorsque la valeur est récupérée (vous pouvez en fait définir ce qui est renvoyé ici, au lieu de simplement « obtenir une valeur »).
(3) Supprimer un cookie. Pour supprimer un cookie, il vous suffit de définir l'événement d'expiration d'un cookie à une heure passée. Il reçoit le nom d'un cookie en paramètre, supprimant ainsi ce cookie (mon). (implémentation également définie sur vide, afin de prendre en compte la possibilité de conflits de noms lorsque plusieurs cookies doivent être définis à l'avenir).
(4) Autres (Les lecteurs sont autorisés à envisager d’autres opérations par eux-mêmes, je n’entrerai donc pas dans les détails.)
D'accord, vous avez dû deviner ce que je vais dire encore, c'est vrai, le code n'est pas cher Regardez le code :
/* 对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")); // ??? Cookie.deleteCookie("test"); alert(Cookie.getCookie("test")); }
Supplémentaire : classe de cookie d'opération 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; } }
Utilisation :
1. Définir des cookies
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. Lire les cookies
//简单获取 cookie .GetCookie("key1"); cookie .GetCookie("key2"); cookie .GetCookie("key3"); cookie .GetCookie("key4"); //获取key4的子键k1值 cookie .GetChild("key4","k1");
3. Supprimer
cookie .Expire("key1"); cookie .Expire("key2"); cookie .Expire("key3"); cookie .Expire("key4");
J'espère que cet article sera utile à tout le monde dans la programmation JavaScript.