Verifica jQuery se esiste il cookie, se non lo crealo
-
28-10-2019 - |
Domanda
Non riesco a far funzionare questo codice, devo perdere qualcosa di abbastanza semplice. Sto cercando di verificare se esiste un cookie, se non fa nulla} se non lo crea}. Sto testando il cookie includendo un avviso su una pagina. Fondamentalmente non voglio che il cookie continui a ricreare con un URL di riferimento, sto cercando di afferrare solo il primo URL riferito.
$(document).ready(function(){
if ($.cookie('bas_referral') == null ){
var ref = document.referrer.toLowerCase();
// set cookie
var cookURL = $.cookie('bas_referral', ref, { expires: 1 });
}
});
Visualizzazione dell'attuale contenuto di cookie:
// get cookie
alert($.cookie('bas_referral'));
// delete cookie
$.cookie('bas_referral', null);
Soluzione
Penso che il modo a prova di proiettile sia:
if (typeof $.cookie('token') === 'undefined'){
//no cookie
} else {
//have cookie
}
Controllando il tipo di un var nulla, vuoto o indefinito restituisce sempre "indefinito"
Modificare: Puoi arrivarci ancora più facilmente:
if (!!$.cookie('token')) {
// have cookie
} else {
// no cookie
}
!!
girerà il falsy i valori a false. Tieni presente che questo si girerà 0
a False!
Altri suggerimenti
$(document).ready(function() {
var CookieSet = $.cookie('cookietitle', 'yourvalue');
if (CookieSet == null) {
// Do Nothing
}
if (jQuery.cookie('cookietitle')) {
// Reactions
}
});
Stavo avendo molti problemi con questo perché stavo usando:
if($.cookie('token') === null || $.cookie('token') === "")
{
//no cookie
}
else
{
//have cookie
}
Quanto sopra è sempre stato falso, non importa quello che ho fatto in termini di impostazione del cookie o no. Dai miei test sembra che l'oggetto non sia definito prima che sia impostato, quindi aggiungendo quanto segue al mio codice lo ha risolto.
if($.cookie('token') === null || $.cookie('token') === ""
|| $.(cookie('token') === "null" || $.cookie('token') === undefined)
{
//no cookie
}
else
{
//have cookie
}
È possibile impostare il cookie dopo aver controllato se esiste con un valore.
$(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
}
});
Prova questo molto semplice:
var cookieExist = $.cookie("status");
if(cookieExist == "null" ){
alert("Cookie Is Null");
}