Wie setze und entferne ich ein Cookie mit jQuery, zum Beispiel ein Cookie namens test
und setzen Sie den Wert auf 1
?
Der Beispielcode ist nicht vollständig. Ist es nur ein einzelner }
die fehlt oder fehlen mehrere Codezeilen?
Wie setze und entferne ich ein Cookie mit jQuery, zum Beispiel ein Cookie namens test
und setzen Sie den Wert auf 1
?
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(",");
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=/;";
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.
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.
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).
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);
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 :)
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.