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
nomde la fonctioncookieSet()définit le nom du cookie à créer ou modifier.valeur(String ou Number)Le paramètre
valeurde 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
attributsde la fonctioncookieSet()définit les attributs optionnels à appliquer au cookie à créer ou modifier.- Propriétés
domain(String)La propriété
domaindu paramètreattributsdéfinit le(s) domaine(s) pour lequel le cookie sera valable.path(String)La propriété
pathdu paramètreattributsdé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é
expiresIndu paramètreattributsdé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é
daysdu paramètreattributsdé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 .
