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 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);
29
demandé sur ToddN 2011-06-15 22:44:19

5 réponses

Je pense que la manière pare-balles est:

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

La vérification du type d'un var null, vide ou indéfini renvoie toujours 'undefined'

Modifier: Vous pouvez y arriver encore plus facilement:

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

!! tourner l'falsy valeurs false. Gardez à l'esprit que cela va tourner 0 à false!

61
répondu Laszlo 2017-02-17 07:37:34
 $(document).ready(function() {

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

     if (CookieSet == null) {
          // Do Nothing
     }
     if (jQuery.cookie('cookietitle')) {
          // Reactions
     }
 });
26
répondu inertialmedia 2011-12-16 16:44:04

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 renvoyait toujours false, peu importe ce que j'ai fait en termes de configuration du cookie ou non. De mes tests, il semble que l'objet est donc indéfini avant qu'il ne soit défini, donc 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
répondu Android334 2015-03-27 12:14:54

, Vous pouvez définir le cookie après avoir vérifié s'il existe 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
répondu FinkAvenue 2017-07-10 10:02:57

Essayez ceci très simple:

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

            }
0
répondu Aldrin Masamoc Mojica 2018-04-27 04:14:16