Exactement quelles sont les restrictions pour la gestion des cookies de navigateur de javascript? Puis-je vérifier si les cookies sont activés par exemple?Puis-je modifier ou ajouter des cookies de JavaScript?
Répondre
Vous écrivez un cookie et essayez de relire: de cette façon, vous saurez si les cookies sont activés.
Oui! Read this excellent article about using cookies with JavaScript
Voici un exemple de code extrait.
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
Et comme pour tester si elles sont activées. J'aime la réponse de jldupont.
vous pouvez utiliser navigator.cookieEnabled
mais je ne suis pas sûr si elle est supportée par tous les navigateurs.
Pour plus d'informations sur les cookies, consultez this
Puis-je vérifier si les cookies sont activés par exemple?
Oui, mais pas aussi facilement que vous le pensez. navigator.cookieEnabled
est un indicateur très général qui ne couvre pas exactement dans quelles circonstances vous pouvez définir un cookie. Par exemple, il est possible que les cookies de session soient autorisés mais que les cookies persistants soient bloqués. Donc, vous ne saurez pas vraiment si un cookie-set va réussir à moins que vous n'alliez de l'avant et ne l'essayez, en mettant un document.cookie
factice, puis en lisant document.cookie
pour voir si cela a pris.
Dans de nombreux navigateurs, un cookie persistant sera rétrogradé en un cookie de session lorsque les cookies persistants sont désactivés. Mais pas IE, qui va simplement le bloquer. Vous pouvez essayer de détecter cela en définissant à la fois un cookie de persistance et un cookie de session sur document.cookie
et de voir lequel survit le cas échéant.
Le code W3Schools JavaScript Cookies comporte un bogue. Dans la fonction setCookie cette ligne:
exdate.setDate(exdate.getDate()+expiredays);
JavaScript Date de Propriétés Objet:
getDate() - Returns the day of the month (from 1-31)
...
getTime() - Returns the number of milliseconds since midnight Jan 1, 1970
...
getDate() plus the number of days is not going to work. I think it should be something like this:
expire = expiredays * 1000 * 60 * 60 * 24; // convert to milliseconds
var exdate = new Date(today.getTime() + (expire));
Les bibliothèques de biscuits à TechPatterns.com Javascript Cookie Script Get Cookie, Set Cookie, Delete Cookie Functions fonctionnent mieux (# 1 dans les résultats Google ne sont pas toujours le meilleur).
J'ai testé le code des deux pages dans IE8 et le premier a fait que mon cookie a une date d'expiration du 1/1/2038 1:00 AM. Le code du second exemple définit la date d'expiration de mon cookie à exactement 1 jour à partir du moment où je l'ai testé, comme prévu.
Ces bibliothèques semblent cependant avoir un autre problème (si le cookie contient '='): http://thinkclay.com/technology/add-edit-delete-cookies-with-javascript#comment-712789590 – despot
Il y a un grand article sur quirksmode sur la manipulation des cookies via JavaScript: http://www.quirksmode.org/js/cookies.html
- 1. Ajouter ou modifier une valeur de clé JSON avec jquery ou javascript
- 2. ajouter dynamiquement des éléments de jquery ou javascript
- 3. PHP + Javascript - Lire/Ecrire des cookies
- 4. javascript, php, les cookies
- 5. javascript, php, cookies
- 6. Lire les cookies avec JavaScript
- 7. Transmettre des données sans utiliser de cookies en Javascript
- 8. Comment modifier ou ajouter une nouvelle ligne dans jqGrid
- 9. Vérification de l'activation des cookies dans IE8 en utilisant Javascript
- 10. Raccourci Textmate pour ajouter/supprimer des commentaires HTML ou JavaScript
- 11. Supprimer les cookies des fichiers JS ou CSS
- 12. Javascript effacer tous les cookies
- 13. Etrange problème de cookies JavaScript/inter-sites
- 14. JavaScript et les cookies tiers
- 15. Cookies et navigation javascript (tabs)
- 16. Ajouter/modifier table SQL
- 17. La détection par programme des cookies du navigateur est-elle activée/désactivée sans redirection ou Javascript?
- 18. Javascript - ajouter dynamiquement des champs de saisie
- 19. ajouter/supprimer/modifier des valeurs dans "default.properties"
- 20. Accéder aux cookies, heureusement en JavaScript
- 21. Écrire des cookies de CookieContainer au magasin de cookies IE
- 22. ASP.NET/JavaScript: Supprimer tous les cookies
- 23. Comment puis-je itérer sur les cookies en utilisant jquery (ou juste javascript)?
- 24. radGrid Ajouter un nouvel enregistrement ou modifier l'enregistrement
- 25. Suppression des cookies Javascript ne fonctionnant pas sur Chrome
- 26. problèmes avec le fonctionnement des cookies avec javascript
- 27. modifier l'ordre des colonnes de DataGrid ou de l'indice
- 28. Comment modifier une iframe pour maximiser ou minimiser en javascript?
- 29. lecture Javascript cookies d'un sous-domaine
- 30. Django: Récupérer une session ou des cookies dans le middleware
Bon article avec des scripts de travail. – Bratch
Merci! Très bel exemple. –