Cookie в js представлены в виде строки. Поэтому работа с ними может вызывать некоторые трудности.
Например сейчас они представлены так:
И это проблема. Напишем функцию, представляющую cookie в виде массива:
Из интересного в этой функции:
replace(/; /g,";") - используя регулярные выражения удаляет лишний пробел после ";"
split(";") - разбивает строку на массив. Делителем выступает знак ";"
forEach(function(element){}) - проходит по всем элементам массива. Значение каждого элемента возвращается аргументом element
Это создаст cookie "my_cookie" со значением "value", которая будет удалена в январе 2018 года. Довольно удобно, поэтому можно оставить и такой механизм.
Чтобы удалить cookie, необходимо установить дату уничтожения на прошедшее число:
Таким образом cookie автоматически удалится (другие cookie затронуты не будут).
Спасибо за внимание.
Например сейчас они представлены так:
1 2 3 4 | <div id="testcookie" class="lesson-output"></div><script>$("#testcookie").html(document.cookie);</script> |
1 2 3 4 5 6 7 | var cookies={};document.cookie.replace(/; /g,";").split(";").forEach(function(element){ var cookie=element.split("="); if(cookie.length==2){ cookies[cookie[0]]=cookie[1]; }}); |
И воспользуемся js-функцией вывода массива:
Так мы получаем массив cookie.
Получение cookie важная часть работы с ними, но важно и научиться их %b%создавать%/b%.
Можно воспользоваться простым, стандартным способом:
1 | document.cookie="my_cookie=value; expires=Mon, 01-Jan-2018 00:00:00 GMT"; |
1 | document.cookie="my_cookie=value; expires=Mon, 01-Jan-2001 00:00:00 GMT"; |