1352 Stimmen

Wie kann ich ein Cookie mit jQuery setzen/entfernen?

Wie setze und entferne ich ein Cookie mit jQuery, zum Beispiel ein Cookie namens test und setzen Sie den Wert auf 1 ?

2voto

Hasan Badshah Punkte 697

Wie wird es verwendet?

//To set a cookie
$.cookie('the_cookie', 'the_value');

//Create expiring cookie, 7 days from then:
$.cookie('the_cookie', 'the_value', { expires: 7 });

//Create expiring cookie, valid across entire page:
$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });

//Read cookie
$.cookie('the_cookie'); // => 'the_value'
$.cookie('not_existing'); // => null

//Delete cookie by passing null as value:
$.cookie('the_cookie', null);

// Creating cookie with all availabl options
$.cookie('myCookie2', 'myValue2', { expires: 7, path: '/', domain: 'example.com', 
         secure: true, raw: true });

Verfügbare Optionen :

Läuft ab : Definiert die Lebensdauer des Cookies. Der Wert kann eine Zahl (die als Tage ab dem Zeitpunkt der Erstellung interpretiert wird) oder ein Datumsobjekt sein. Wird dieser Wert nicht angegeben, handelt es sich um ein Session-Cookie.

Pfad : Definieren Sie den Pfad, in dem das Cookie gültig ist. Standardmäßig ist der Pfad des Cookies der Pfad der Seite, auf der das Cookie erstellt wurde (Standard-Browserverhalten). Wenn Sie das Cookie z. B. für die gesamte Seite verfügbar machen wollen, verwenden Sie Pfad: '/'.

Domain : Domain der Seite, auf der das Cookie erstellt wurde.

sicher : Voreinstellung: false. Wenn true, erfordert die Cookie-Übertragung ein sicheres Protokoll (https).

roh : Standardmäßig wird das Cookie beim Erstellen/Lesen kodiert/dekodiert, indem encodeURIComponent/ decodeURIComponent verwendet wird. Deaktivieren Sie es durch die Einstellung raw: true.

2voto

Kai Punkte 257

Um die Anzahl der Operationen im Vergleich zu den vorherigen Antworten zu reduzieren, verwende ich die folgenden.

function setCookie(name, value, expiry) {
    let d = new Date();
    d.setTime(d.getTime() + (expiry*86400000));
    document.cookie = name + "=" + value + ";" + "expires=" + d.toUTCString() + ";path=/";
}

function getCookie(name) {
    let cookie = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
    return cookie ? cookie[2] : null;
}

function eatCookie(name) {
    setCookie(name, "", -1);
}

1voto

Colin R. Turner Punkte 1230

Ich dachte Vignesh Pichamani Die Antwort war die einfachste und sauberste. Ich füge nur die Möglichkeit hinzu, die Anzahl der Tage vor dem Verfall festzulegen:

EDIT: außerdem wurde die Option 'never expires' hinzugefügt, wenn keine Tageszahl eingestellt ist

        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;
        }

Setzen Sie das Cookie:

setCookie('myData', 1, 30); // myData=1 for 30 days. 
setCookie('myData', 1); // myData=1 'forever' (until the year 9999)

1voto

Fabian Punkte 551

Ich weiß, dass es viele gute Antworten gibt. Oft muss ich nur Cookies lesen und möchte keinen Overhead durch das Laden zusätzlicher Bibliotheken oder die Definition von Funktionen verursachen.

Hier ist wie man Cookies in einer Javascript-Zeile liest . Ich fand die Antwort in Blog-Artikel von Guilherme Rodrigues :

('; '+document.cookie).split('; '+key+'=').pop().split(';').shift()

Dies liest das Cookie mit dem Namen key , schön, sauber und einfach.

1voto

Kamil Kiełczewski Punkte 69048

Versuchen Sie (doc aquí SO Snippet funktioniert nicht, also ausführen diese )

document.cookie = "test=1"             // set
document.cookie = "test=1;max-age=0"   // unset

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X