63 votes

Comment détecter que JavaScript et/ou Cookies sont désactivés ?

Comment détecter que JavaScript ou les cookies sont désactivés dans le navigateur de l'utilisateur et le notifier de l'aide ?

90voto

seengee Points 9367

Pour vérifier les cookies, vous pouvez utiliser :

 function checkCookie(){
    var cookieEnabled = navigator.cookieEnabled;
    if (!cookieEnabled){ 
        document.cookie = "testcookie";
        cookieEnabled = document.cookie.indexOf("testcookie")!=-1;
    }
    return cookieEnabled || showCookieFail();
}

function showCookieFail(){
  // do something here
}


// within a window load,dom ready or something like that place your:
checkCookie();

Et pour vérifier JavaScript, utilisez une <noscript> avec une sorte de message à l'intérieur

20voto

Zymotik Points 491

Comme la détection des cookies ne fonctionnait pas dans IE 11, je suggère l'approche Modernizr :

 function areCookiesEnabled() {
    try {
      document.cookie = 'cookietest=1';
      var cookiesEnabled = document.cookie.indexOf('cookietest=') !== -1;
      document.cookie = 'cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT';
      return cookiesEnabled;
    } catch (e) {
      return false;
    }
}

https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cookies.js

7voto

Niresh Points 79

C'est le moyen le plus simple

 if (navigator.cookieEnabled) {
document.write("Cookies Enabled");
} else 
{
document.write("Oops Cookies Not Enabled");
}
 Check if Cookies Enabled in Your Browser:  
<br />

3voto

JimmyLandStudios Points 349
// Example[1]: if ( hasCookies() )
/**
* @hasCookies:  Check if cookie's are Enabled
* @param  {none} ''
* @return {BOOLEAN} true|false
*/
function hasCookies() {
return (navigator.cookieEnabled);
}

 // Example[2]: if ( JLS.TEST.COOKIE() )
// Java Pattern ( How to write usable JS)
/** @namespace JLS classes and functions. */
var JLS = JLS || {};
/**
* TEST utility
* @namespace JLS
* @class TEST
*/
JLS.TEST = {

/**
* @public-method COOKIE
* @COOKIE  Check if cookie's are Enabled
* @return {BOOLEAN} true|false
*/
 COOKIE: function () {
    //Change this (library). Not main.js (Algorithm)
    return (navigator.cookieEnabled);
    }
};

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X