2017-01-03 6 views
0

У меня есть набор верхних сообщений, которые служат в качестве оповещений. У них есть 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, и мне было интересно, если я на правильном пути или нет. любое предложение приветствуется.

+0

Какая ошибка при получении? Обратите внимание, что у вас есть синтаксическая ошибка в инструкции 'console.log' содержит' '' – JavaKungFu

+0

@JavaKungFu только что обновил вопрос – valerio0999

+0

Здесь я вижу 2 варианта. Вариант 1. Храните массив в объеме идентификаторов сохраненных файлов. Вариант 2: используйте 'document.cookie' для извлечения списка всех файлов cookie и итерации. Конечно, вариант 1 не будет постоянным в течение сеансов, поэтому может быть не идеальным. – JavaKungFu

ответ

0

Я думаю, что лучший подход здесь - прочитать куки-файл перед тем, как показывать предупреждающие сообщения (на странице), и показывать только предупреждение, если файл cookie не существует. Вы не указали эту часть кода, но если вы включите ее, я был бы рад добавить соответствующие обновления кода здесь.

+0

спасибо за помощь, но я думаю, что вы не в курсе. :( – valerio0999

 Смежные вопросы

  • Нет связанных вопросов^_^