39 votes

jQuery vérifie si le cookie existe, sinon le crée

Je ne peux pas faire fonctionner ce code. Je dois manquer quelque chose d'assez simple. J'essaie de vérifier si un cookie existe, s'il ne {ne fait rien} s'il ne {le crée pas}. Je teste le cookie en incluant une alerte sur une page. Fondamentalement, je ne veux pas que le cookie continue à recréer avec une URL de référence, j'essaie de ne saisir que la PREMIÈRE URL référencée.

$(document).ready(function(){   
  if ($.cookie('bas_referral') == null ){
   var ref = document.referrer.toLowerCase();  
   // set cookie  
   var cookURL =  $.cookie('bas_referral', ref, { expires: 1 }); 
  } 
 });  

Affichage du contenu actuel du cookie :

    // get cookie  
    alert($.cookie('bas_referral'));  

    // delete cookie  
     $.cookie('bas_referral', null);

80voto

Laszlo Points 1199

Je pense que la méthode pare-balles est :

if (typeof $.cookie('token') === 'undefined'){
 //no cookie
} else {
 //have cookie
}

La vérification du type d'une variable NULL, vide ou indéfinie renvoie toujours 'Undefined'

Modifier : Vous pouvez vous y rendre encore plus facilement :

if (!!$.cookie('token')) {
 // have cookie
} else {
 // no cookie
}

!! changera les valeurs fausses à false. Gardez à l'esprit que cela va transformer 0 en faux !

26voto

inertialmedia Points 508
 $(document).ready(function() {

     var CookieSet = $.cookie('cookietitle', 'yourvalue');

     if (CookieSet == null) {
          // Do Nothing
     }
     if (jQuery.cookie('cookietitle')) {
          // Reactions
     }
 });

8voto

Android334 Points 66

J'avais beaucoup de mal avec ça parce que j'utilisais :

if($.cookie('token') === null || $.cookie('token') === "")
{
      //no cookie
}
else
{
     //have cookie
}

Ce qui précède était TOUJOURS faux, peu importe ce que j'ai fait en termes de configuration du cookie ou non. D'après mes tests, il semble que l'objet est donc indéfini avant qu'il ne soit défini, donc ajouter ce qui suit à mon code l'a corrigé.

if($.cookie('token') === null || $.cookie('token') === "" 
    || $.(cookie('token') === "null" || $.cookie('token') === undefined)
{
      //no cookie
}
else
{
     //have cookie
}

1voto

FinkAvenue Points 579

Vous pouvez définir le cookie après avoir vérifié s'il existe avec une valeur.

 $(document).ready(function(){            
      if ($.cookie('cookie')) { //if cookie isset
         //do stuff here like hide a popup when cookie isset
         //document.getElementById("hideElement").style.display = "none";
      }else{
         var CookieSet = $.cookie('cookie', 'value'); //set cookie
      }       
 });

0voto

Essayez ceci très simplement :

            var cookieExist = $.cookie("status");
            if(cookieExist == "null" ){
                alert("Cookie Is Null");

            }

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