2010-03-11 6 views
4

J'essaie de vérifier si les cookies sont activés ou non en Javascript, cross-browser.Vérification de l'activation des cookies dans IE8 en utilisant Javascript

J'ai ce fonctionne bien dans Firefox 3 en utilisant le code suivant -

var cookieEnabled=(navigator.cookieEnabled)? true : false; 

//if not IE4+ nor NS6+ 
if (typeof navigator.cookieEnabled=="undefined" && !cookieEnabled){ 
    document.cookie="testcookie"; 
    cookieEnabled=(document.cookie.indexOf("testcookie")!=-1)? true : false; 
} 

Et de ce que j'ai vu cela semble être la méthode raisonnablement établie pour vérifier le support des cookies étant activée? Cependant, il refuse de travailler dans IE8, quand j'éteins les cookies dans celui-ci et exécute ce code cookiesEnabled est toujours vrai.

Des idées?

Merci.

+0

Je vois sur IE8 - même si je bloque tous les cookies, et essayer d'en définir un via mon code javascript, il est défini et je peux voir le cookie réel sur le système de fichiers. Une exception à cette règle est lorsque je définis un domaine pour le cookie, il n'est pas défini. Donc, je me demande si le javascript et navigator.cookieEnabled lors de l'exécution via un fichier HTML local renvoie vrai - mais si vous deviez l'exécuter sur un serveur web distant (comme servi à partir d'un domaine) - se comporte-t-il différemment? – JoseK

Répondre

3

Ah a trouvé le problème. Je testais mon logiciel en naviguant vers http://localhost ...

Bien sûr, IE traite cela comme la zone Intranet locale et n'applique pas mes paramètres pour les cookies, ce qui leur permet de faire n'importe quoi!

Si je navigue à mon adresse IP réelle via le rebouclage local, il l'a traitée comme zone internet marchait très bien :)

Doh!

Questions connexes