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 ?

10voto

user890332 Punkte 1187

Achten Sie darauf, dass Sie so etwas nicht tun:

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

Wenn das Cookie dann nicht existiert, gibt der Debugger eine wenig hilfreiche Meldung wie ".cookie not a function" aus.

Deklarieren Sie immer zuerst und führen Sie dann den Split durch, nachdem Sie auf Null geprüft haben. Zum Beispiel so:

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

0 Stimmen

Der Beispielcode ist nicht vollständig. Ist es nur ein einzelner } die fehlt oder fehlen mehrere Codezeilen?

0 Stimmen

Es fehlt nur ein einziger }, aber natürlich müssen Sie weitere Codezeilen hinzufügen, um das, was Sie mit dem Split machen wollen, fortzusetzen.

9voto

S1awek Punkte 1147

Hier sehen Sie, wie Sie das Cookie mit JavaScript setzen:

Der folgende Code stammt aus 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=/";
}

Jetzt können Sie das Cookie mit der folgenden Funktion abrufen:

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

Und so überprüfen Sie schließlich den 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);
        }
    }
}

Wenn Sie das Cookie löschen möchten, setzen Sie den Parameter expires einfach auf ein bestimmtes Datum:

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

7voto

Webpixstudio Punkte 157

Ein einfaches Beispiel für ein gesetztes Cookie in Ihrem Browser:

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>jquery.cookie Test Suite</title>

        <script src="jquery-1.9.0.min.js"></script>
        <script src="jquery.cookie.js"></script>
        <script src="JSON-js-master/json.js"></script>
        <script src="JSON-js-master/json_parse.js"></script>
        <script>
            $(function() {

               if ($.cookie('cookieStore')) {
                    var data=JSON.parse($.cookie("cookieStore"));
                    $('#name').text(data[0]);
                    $('#address').text(data[1]);
              }

              $('#submit').on('click', function(){

                    var storeData = new Array();
                    storeData[0] = $('#inputName').val();
                    storeData[1] = $('#inputAddress').val();

                    $.cookie("cookieStore", JSON.stringify(storeData));
                    var data=JSON.parse($.cookie("cookieStore"));
                    $('#name').text(data[0]);
                    $('#address').text(data[1]);
              });
            });

       </script>
    </head>
    <body>
            <label for="inputName">Name</label>
            <br /> 
            <input type="text" id="inputName">
            <br />      
            <br /> 
            <label for="inputAddress">Address</label>
            <br /> 
            <input type="text" id="inputAddress">
            <br />      
            <br />   
            <input type="submit" id="submit" value="Submit" />
            <hr>    
            <p id="name"></p>
            <br />      
            <p id="address"></p>
            <br />
            <hr>  
     </body>
</html>

Einfach kopieren/einfügen und diesen Code verwenden, um Ihr Cookie zu setzen.

1 Stimmen

Nur ein Hinweis: Der Browser zwischenspeichert die Ressourcen standardmäßig anhand ihrer Dateinamen. In diesem Beispiel, jquery-1.9.0.min.js wird für alle neu geladen, wenn der Dateiname auf jquery-1.9.1.min.js Andernfalls wird der Browser KEINE Anfrage an den Server stellen, um nach aktualisierten Inhalten zu suchen. Wenn Sie den Code innerhalb von jquery.cookie.js ohne den Dateinamen zu ändern, wird sie in Browsern, die die Datei bereits im Cache haben, möglicherweise NICHT neu geladen. jquery.cookie.js Ressource.

0 Stimmen

Wenn Sie eine Website schreiben und dies kopieren/einfügen, beachten Sie, dass dies nicht funktionieren wird, wenn Sie die jquery.cookie.js Version, ohne den Dateinamen zu ändern (es sei denn, Ihr Server beherrscht die Zwischenspeicherung mittels E-Tags).

0 Stimmen

If ($.cookie('cookieStore')) { var data=JSON.parse($.cookie("cookieStore")); // beim Laden der Seite in andere Seite nicht gefunden $('#name').text(data[0]); $('#address').text(data[1]); }

5voto

Moustafa Samir Punkte 2168

Sie können die Bibliothek auf der Mozilla-Website verwenden aquí

Sie können Cookies wie folgt setzen und abrufen

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

3voto

barmyman Punkte 63

Ich denke, Fresher hat uns einen guten Weg gezeigt, aber es gibt einen Fehler:

    <script type="text/javascript">
        function setCookie(key, value) {
            var expires = new Date();
            expires.setTime(expires.getTime() + (value * 24 * 60 * 60 * 1000));
            document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
        }

        function getCookie(key) {
            var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
            return keyValue ? keyValue[2] : null;
        }
   </script>

Sie sollten "value" bei getTime() hinzufügen, sonst läuft das Cookie sofort ab :)

2 Stimmen

"Wert" könnte eine Zeichenkette sein. In der Frage verwendet er 1 als Beispiel. Wert sollte der Wert des Schlüssels sein, nicht die Länge in Tagen, bevor der Cookie abläuft. Wenn der Wert als "foo" übergeben würde, würde Ihre Version abstürzen.

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