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
È 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