L’objet standard document dispose du sous-objet cookie qui contient la liste des cookies enregistrés pour le nom de domaine. Pour écrire un cookie on ajoute une chaine de caractères clé / valeur à l’objet cookie.
document.cookie = "nomCookie=ValeurCookie";
Le plus simple reste de mettre en place une fonction permettant l’écriture d’un cookie. Cela permettra de factoriser l’ajout / modification d’un cookie et la gestion de son expiration.
function SetCookie(sName, sValue) {
let today = new Date(), expires = new Date();
expires.setTime(today.getTime() + (365*24*60*60*1000));
document.cookie = sName + "=" + encodeURIComponent(sValue) + ";expires=" + expires.toGMTString();
}Dans cet exemple, le cookie est prévu pour durer 1 an. La date d’expiration, qui est obligatoire pour tout cookie, doit être exprimée au format GMT. D’où l’usage de la fonction toGMTString().
La fonction encodeURIComponent() permet quant à elle d’échapper certains caractères (ex : ?,=,/,&,:).
L’objet standard document dispose du sous-objet cookie qui contient la liste des cookies enregistrés pour le nom de domaine. Cette liste de cookies se présente sous la forme d’une chaine de caractères ou chaque cookie est suivi de sa valeur, séparé du suivant par un point-virgule et où la date d’expiration n’est pas affichée. Il n’est donc pas aisé de récupérer la valeur d’un cookie rapidement. On peut utiliser les expressions régulières comme dans cet exemple de fonction pour se faciliter la vie :
function GetCookie(cookie_name) {
let oRegex = new RegExp("(?:; )?" + cookie_name + "=([^;]*);?");
if (oRegex.test(document.cookie)) {
return decodeURIComponent(RegExp["$1"]);
} else {
return null;
}
}Javascript ne permet pas la suppression d’un cookie. Il convient de le redéfinir en lui donnant une date d’expiration dépassée. Le navigateur le supprimera alors de lui-même.