Créer ou modifier un cookie avec JavaScript
Concept et utilisation
La fonction cookieSet()
permet de créer un cookie ou de modifier la valeur d'un cookie existant.
Le nom, la valeur, et les attributs du cookie peuvent être spécifiés.
Fonction
Créée un cookie.
- Syntaxe
cookieSet(nom, valeur, attributs);
- Paramètres
nom
(String)Le paramètre
nom
de la fonctioncookieSet()
définit le nom du cookie à créer ou modifier.valeur
(String ou Number)Le paramètre
valeur
de la fonctioncookieSet()
définit la valeur du cookie à créer ou modifier.
La valeur sera encodée avec la fonction encodeURIComponent().attributs
(Object)Le paramètre
attributs
de la fonctioncookieSet()
définit les attributs optionnels à appliquer au cookie à créer ou modifier.- Propriétés
domain
(String)La propriété
domain
du paramètreattributs
définit le(s) domaine(s) pour lequel le cookie sera valable.path
(String)La propriété
path
du paramètreattributs
définit le chemin des pages pour pour lequel le cookie sera valable
Par default, la valeur de cet attribut est/
.expiresIn
(Number)La propriété
expiresIn
du paramètreattributs
définit le délai d'expiration du cookie, en millisecondes.
Si la valeur est omise ou vaut0
, le cookie durera le temps de la session du navigateur.days
(Number)La propriété
days
du paramètreattributs
définit le délai en jours d'expiration du cookie.
Si la valeur est omise ou vaut0
, le cookie durera le temps de la session du navigateur.
- Autres propriétés
Une liste exhaustive des attributs de cookie est disponible ici.
Exemples de création de cookie
Création d'un cookie de session
var nom = 'nom_du_cookie';
var valeur = 'Valeur';
cookieSet(nom, valeur);
Création d'un cookie avec expiration
var nom = 'nom_du_cookie';
var valeur = 'Valeur';
var attributs = {
expiresIn: 365*24*60*60*1000
};
cookieSet(nom, valeur, attributs);
Le code précédent est equivalent au code suivant :
var nom = 'nom_du_cookie';
var valeur = 'Valeur';
var attributs = {
days: 365
};
cookieSet(nom, valeur, attributs);
Code source de la fonction
function cookieSet(name, value, o) {
o = o || {};
var v = name + "=" + encodeURIComponent(value) + ";path=" + (o.path || '/');
for (var k in o) {
if (!/^(name|value|path)$/i.test(k)) {
if (/^(days|expiresIn)$/i.test(k)) {
var d = new Date();
d.setTime(d.getTime() + (k === 'expiresIn' ? o[k] : o[k]*24*60*60*1000));
v += ";expires=" + d.toUTCString();
} else if (/^(secure|httponly)$/i.test(k)) {
v += (typeof o[k] === 'boolean' && o[k]) ? ';' + k : '';
} else {
v += ";" + k + "=" + o[k];
}
}
}
document.cookie = v;
}
Dernière mise à jour le .