web-dev-qa-db-fra.com

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

Je n'arrive pas à faire fonctionner ce code, il me manque quelque chose d'assez simple. J'essaie de vérifier si un cookie existe, s'il {ne fait rien} s'il ne {le crée pas}. Je teste le cookie en incluant une alerte sur une page. En gros, je ne veux pas que le cookie continue à se recréer avec une URL de référence, j'essaie uniquement de saisir l'URL PREMIÈRE.

$(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);
31
ToddN

Je pense que le moyen pare-balles est:

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

La vérification du type d'une variable null, vide ou non définie renvoie toujours 'non défini'

Edit: Vous pouvez y arriver encore plus facilement:

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

!! transformera les valeurs falsy _ sur false. Gardez à l'esprit que ceci va transformer 0 en false!

63
Laszlo
 $(document).ready(function() {

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

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

J'avais beaucoup de problèmes avec cela parce que j'utilisais:

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

Ce qui précède retournait TOUJOURS faux, peu importe ce que je faisais pour définir le cookie ou non. D'après mes tests, il semble que l'objet soit donc indéfini avant qu'il ne soit défini. L'ajout de 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
}
8
Android334

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
      }       
 });
1
FinkAvenue

Essayez ceci très simple:

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

            }
0