У меня есть набор верхних сообщений, которые служат в качестве оповещений. У них есть X, чтобы закрыть их. Закрытие их устанавливает куки-файлы, которые заставляют их исчезать навсегда, имя файла cookie берется из id
конкретного верхнего сообщения, которое вы закрываете.чтение динамически созданных имен файлов cookie
У меня есть базовый код для создания, чтения и стирания куки, который идет как это:
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);
}
и я создавать динамические именем куки, как это:
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');
});
}
и это делает работа. Моя проблема в том, когда я должен прочитать cookie. Это выдает ошибку:
(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')
}
})();
ошибка
app.js:1142 Uncaught ReferenceError: CookieUniqueIdentifier is not defined
я получить, что CookieUniqueIdentifier
является областью видимости внутри функции мыши, и он не может получить его. Но то, что я хочу достичь, - это система динамического создания файлов cookie, названных уникальным id
, и, следовательно, читать их динамически.
Я не очень хорош с jquery, и мне было интересно, если я на правильном пути или нет. любое предложение приветствуется.
Какая ошибка при получении? Обратите внимание, что у вас есть синтаксическая ошибка в инструкции 'console.log' содержит' '' – JavaKungFu
@JavaKungFu только что обновил вопрос – valerio0999
Здесь я вижу 2 варианта. Вариант 1. Храните массив в объеме идентификаторов сохраненных файлов. Вариант 2: используйте 'document.cookie' для извлечения списка всех файлов cookie и итерации. Конечно, вариант 1 не будет постоянным в течение сеансов, поэтому может быть не идеальным. – JavaKungFu