This page has been robot translated, sorry for typos if any. Original content here.

Comment configurer et obtenir un cookie en utilisant JavaScript

Pour le travail, nous avons besoin de deux fonctions: obtenir et mettre en place un cookie

La fonction de réglage du cookie

 function set_cookie (nom, valeur, expire)
 {
 if (! expire)
 {
 expires = new Date ();
 }
 document.cookie = nom + "=" + échappement (valeur) + "; expires =" + expires.toGMTString () + "; path = /";
 }

Fonction de cookie

 function get_cookie (nom) {cookie_name = nom + "=";  cookie_length = document.cookie.length;  cookie_begin = 0;  while (cookie_begin <cookie_length) {valeur_begin = cookie_begin + cookie_name.length;  if (document.cookie.substring (cookie_begin, valeur_begin) == cookie_name) {var valeur_fin = document.cookie.indexOf (";", valeur_begin);  if (value_end == -1) {value_end = longueur du cookie;  } return unescape (document.cookie.substring (valeur_begin, valeur_end));  } cookie_begin = document.cookie.indexOf ("", cookie_begin) + 1;  if (cookie_begin == 0) {pause;  }} return null;  } 

Exemple d'installation et de réception

Dans l'exemple, cliquer sur le lien "Installation" est écrit dans le cookie du navigateur. Nous le faisons avec l'aide de cette fonction:

 function save_cookie () {
  var name = "example" // nom du cookie
  var tmp = "Salut, je suis ton cookie!";  // écrire la valeur
  expires = new Date ();  // obtenir la date actuelle
  expires.setTime (expires.getTime () + (1000 * 86400 * 365));  // calcule l'heure d'expiration du cookie
  set_cookie (nom, tmp, expire);  // définit le cookie en utilisant la fonction set_cookie
 }

Appelez cette fonction en html:

<a href="javascript:save_cookie();">Установка</a>

Pour lire le cookie, utilisez la fonction get_cookie () et pour plus de clarté, écrivez le résultat dans la couche html. Nous faisons cela avec l'aide de cette fonction:

 Fonction write_cookie () {
  // Récupère un cookie et écris la valeur sur la couche de calque en utilisant innerHTML
  document.getElementById ('layer'). innerHTML = get_cookie ('exemple'); 
 }

Appelez cette fonction en html:

<a href="javascript:write_cookie();">Чтение</a>
// слой, в котором показываем значение cookie
<div id="layer" style="padding:5px;"></div>

Exemple d'enregistrement et d'obtention d'un tableau

L'installation et la réception des cookies sont similaires à celles décrites dans l'exemple précédent, avec la seule différence qu'avant de lire et d'enregistrer, vous devez traiter le tableau.

Nous obtenons les valeurs et les écrivons dans le cookie en utilisant la fonction save_array ():

 function save_array () {
  var myArray = [1, 2, "bonjour"];  // tableau avec des valeurs
  var tmp = "";
  if (myArray! = null) {
 
  // nous parcourons le tableau, en collectant des valeurs dans une variable et en les séparant par une virgule
  pour (je dans myArray) 
  {
  if (myArray [i]! = "") {
  tmp = tmp + monArray [i];
  if (i! = myArray.length-1) {
  tmp = tmp + ",";
  }
  }
  }
  }
  expires = new Date ();  // obtenir la date actuelle
  expires.setTime (expires.getTime () + (1000 * 86400 * 365));  // calcule l'heure d'expiration du cookie
  set_cookie ("exemple", tmp, expire);  // définit le cookie en utilisant la fonction set_cookie
 }

Appelez cette fonction en html:

<a href="javascript:save_array();">Установка</a>

Lire la valeur du cookie et l'afficher dans la couche html

 function write_array () {
  var getmyArray = get_cookie ('exemple');  // Lire la valeur du cookie
  var tmp = '';
  getmyArray = getmyArray.split (",") // analyse la valeur en la plaçant dans un tableau
  pour (i = 0; i <getmyArray.length; i ++) // parcourir le tableau et le formater pour la sortie
  {
  tmp + = getmyArray [i];
  if (i! = getmyArray.length) {
  tmp + = "<br / 7>";
  }
 }
  // affiche le tableau sur le calque avec l'identifiant layer2
  document.getElementById ('layer2'). innerHTML = tmp; 
 }

Appelez cette fonction en html:

<a href="javascript:write_array();">Распечатать массив</a>
// слой, в котором показываем значение cookie
<div id="layer2" style="padding:5px;"></div>