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" ; |