Ich habe eine Reihe von Top-Nachrichten, die als Warnungen dienen. Sie haben eine X, um sie zu schließen. Wenn Sie sie schließen, wird ein Cookie gesetzt, der sie für immer verschwinden lässt. Der Name des Cookies wird aus der id
der spezifischen obersten Nachricht, die Sie schließen, übernommen.lesen dynamisch erstellte Cookie-Namen
ich habe einen Basiscode zum Erstellen, Lesen und das Cookie zu löschen, die so geht:
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
} else
var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(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;
}
function eraseCookie(name) {
createCookie(name, "", -1);
}
und i erstellen, um die dynamische genannten Cookies wie folgt aus:
if ($(".timed-top-message").size() > 0) {
$(".timed-top-message").on("click", "i", function() {
var CookieUniqueIdentifier = $(this).parent().attr("id")
$(this).parent().fadeOut(200);
createCookie(CookieUniqueIdentifier, 'true', 100000)
console.log('cookie created');
});
}
und dies tut die Arbeit. Mein Problem ist, wenn ich den Keks lesen muss. Dies wirft einen Fehler:
(function() {
var checkForCookiez = readCookie(CookieUniqueIdentifier); // i read the cookie
if (!checkForCookiez) { // if it doesn't exist
console.log('it does not exist')
} else{ // if it does exist
console.log('it does exist')
}
})();
der Fehler
app.js:1142 Uncaught ReferenceError: CookieUniqueIdentifier is not defined
ich bekommen, dass CookieUniqueIdentifier
in einem Klick-Funktion scoped ist, und es kann nicht abgerufen werden. Aber was ich erreichen möchte, ist ein System, um Cookies dynamisch zu erstellen, die durch eine eindeutige id
benannt werden und folglich dynamisch lesen.
Ich bin nicht sehr gut mit jquery und ich fragte mich, ob ich auf dem richtigen Weg bin oder nicht. Jeder Vorschlag wird sehr geschätzt.
Was ist der Fehler, den Sie bekommen? Beachten Sie, Sie haben einen Syntaxfehler in der 'console.log' Anweisung enthält ein' ' – JavaKungFu
@JavaKungFu aktualisiert gerade die Frage – valerio0999
Ich sehe 2 Optionen hier. Option 1: Behalte ein Array im Bereich der IDs der gespeicherten Cookies. Option 2: Verwenden Sie 'document.cookie', um die Liste aller Cookies abzurufen und zu iterieren. Natürlich würde Option 1 nicht über mehrere Sitzungen hinweg bestehen, also ist sie möglicherweise nicht ideal. – JavaKungFu