Come faccio a impostare / rimuovere un cookie con jQuery?

Come faccio a impostare e rimuovere un cookie utilizzando jQuery, ad esempio creare un cookie denominato test e impostare il valore su 1 ?

Vedi il plugin:

https://github.com/carhartl/jquery-cookie

Puoi quindi fare:

 $.cookie("test", 1); 

Cancellare:

 $.removeCookie("test"); 

Inoltre, per impostare un timeout di un certo numero di giorni (10 qui) sul cookie:

 $.cookie("test", 1, { expires : 10 }); 

Se l’opzione expires viene omessa, il cookie diventa un cookie di sessione e viene eliminato alla chiusura del browser.

Per coprire tutte le opzioni:

 $.cookie("test", 1, { expires : 10, // Expires in 10 days path : '/', // The value of the path attribute of the cookie // (Default: path of page that created the cookie). domain : 'jquery.com', // The value of the domain attribute of the cookie // (Default: domain of page that created the cookie). secure : true // If set to true the secure attribute of the cookie // will be set and the cookie transmission will // require a secure protocol (defaults to false). }); 

Per leggere il valore del cookie:

 var cookieValue = $.cookie("test"); 

Potresti voler specificare il parametro path se il cookie è stato creato su un percorso diverso da quello attuale:

 var cookieValue = $.cookie("test", { path: '/foo' }); 

AGGIORNAMENTO (aprile 2015):

Come affermato nei commenti seguenti, il team che ha lavorato al plugin originale ha rimosso la dipendenza da jQuery in un nuovo progetto ( https://github.com/js-cookie/js-cookie ) che ha la stessa funzionalità e syntax generale di la versione jQuery. Apparentemente il plugin originale non sta andando da nessuna parte però.

Non è necessario utilizzare jQuery in particolare per manipolare i cookie.

Da QuirksMode (inclusi caratteri di escape)

 function createCookie(name, value, days) { var expires; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toGMTString(); } else { expires = ""; } document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/"; } function readCookie(name) { var nameEQ = encodeURIComponent(name) + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) === ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) === 0) return decodeURIComponent(c.substring(nameEQ.length, c.length)); } return null; } function eraseCookie(name) { createCookie(name, "", -1); } 

Dare un'occhiata a

  • Come rimuovere un nome di class esistente e aggiungerne uno nuovo con jQuery e cookie?
  

È ansible impostare i cookie come

 setCookie('test','1'); 

Puoi ottenere i cookie come

 getCookie('test'); 

Spero che possa aiutare qualcuno 🙂

MODIFICARE:

Se vuoi salvare il percorso dei cookie solo da homepage, allora fai questo

 function setCookie(key, value) { var expires = new Date(); expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000)); document.cookie = key + '=' + value +';path=/'+ ';expires=' + expires.toUTCString(); } 

Grazie, vicky

Puoi usare un plugin disponibile qui ..

https://plugins.jquery.com/cookie/

e poi scrivere un cookie do $.cookie("test", 1);

per accedere al cookie set fai $.cookie("test");

Ecco il mio modulo globale che uso –

 var Cookie = { Create: function (name, value, days) { var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toGMTString(); } document.cookie = name + "=" + value + expires + "; path=/"; }, Read: function (name) { var nameEQ = name + "="; var ca = document.cookie.split(";"); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == " ") c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; }, Erase: function (name) { Cookie.create(name, "", -1); } }; 

Assicurati di non fare qualcosa del genere:

 var a = $.cookie("cart").split(","); 

Quindi, se il cookie non esiste, il debugger restituirà alcuni messaggi inutili come “.cookie non una funzione”.

Dichiarare sempre per primo, quindi eseguire la divisione dopo aver verificato il nulla. Come questo:

 var a = $.cookie("cart"); if (a != null) { var aa = a.split(","); 

Un semplice esempio di set cookie nel tuo browser:

     jquery.cookie Test Suite         









Semplice basta copiare / incollare e utilizzare questo codice per impostare i cookie.

È ansible utilizzare la libreria sul sito Web Mozilla qui

Sarai in grado di impostare e ricevere cookie come questo

 docCookies.setItem(name, value); docCookies.getItem(name); 

Penso che Fresher ci abbia dato un modo carino, ma c’è un errore:

   

Dovresti aggiungere “value” vicino a getTime (); altrimenti il ​​cookie scadrà immediatamente 🙂

Ecco come imposti il ​​cookie con jQuery:

sotto il codice è stato preso da https://www.w3schools.com/js/js_cookies.asp

 function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } 

ora puoi ottenere il cookie con la funzione seguente:

 function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i = 0; i  

E finalmente questo è il modo in cui controlli il cookie:

 function checkCookie() { var username = getCookie("username"); if (username != "") { alert("Welcome again " + username); } else { username = prompt("Please enter your name:", ""); if (username != "" && username != null) { setCookie("username", username, 365); } } } 

Se vuoi eliminare il cookie, imposta semplicemente il parametro expires su una data passata:

 document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; 

Pensavo che la risposta di Vignesh Pichamani fosse la più semplice e la più pulita. Aggiungendo al suo solo la possibilità di impostare il numero di giorni prima della scadenza:

EDIT: ha anche aggiunto l’opzione ‘non scade mai’ se non è impostato alcun numero del giorno

  function setCookie(key, value, days) { var expires = new Date(); if (days) { expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000)); document.cookie = key + '=' + value + ';expires=' + expires.toUTCString(); } else { document.cookie = key + '=' + value + ';expires=Fri, 30 Dec 9999 23:59:59 GMT;'; } } function getCookie(key) { var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)'); return keyValue ? keyValue[2] : null; } 

Imposta il cookie:

 setCookie('myData', 1, 30); // myData=1 for 30 days. setCookie('myData', 1); // myData=1 'forever' (until the year 9999) 
 $.cookie("test", 1); //set cookie $.cookie("test"); //get cookie $.cookie('test', null); //delete cookie