Не сохраняются cookie
Не могу разобраться, почему cookie работают только в сессии и не сохраняются после закрытия браузера?
<body> <p>Фамилия</p> <input type="text" value="" id="surname"> <p>Имя</p> <input type="text" value="" id="name"> <p>Отчество</p> <input type="text" value="" id="parent"> </body> var inp = document.querySelectorAll('input'); document.addEventListener('input', setCookie); function setCookie() { var date = new Date(); date.setDate(date.getDate() + 1); date = date.toGMTString(); // toUTCString - пробовал for(var i = 0; i < inp.length; i++) { document.cookie = inp[i].getAttribute('id') + "=" + inp[i].value + "; expires=" + date + '; path=/'; } } getCookie(); function getCookie() { var cook = decodeURIComponent(document.cookie); var arr = cook.split(';'); for(var i = 0; i < arr.length; i++) { var [k, v] = arr[i].split('='); // k - ключ cookie; v - значение cookie if(k == inp[i].getAttribute('id')) { inp[i].value = v; } } } |
Цитата:
|
|
У меня такое показывает как ошибку... :(
Но это "спец.редактор" и он про такое не знает как и я. АндрейD, вот работающий вариант... <!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <!-- <script src='https://code.jquery.com/jquery-latest.js'></script> <script src="https://code.angularjs.org/1.3.9/angular.min.js"></script> <script src="https://code.angularjs.org/1.3.9/angular-route.js"></script> --> <style type='text/css'> </style> <script type='text/javascript'> </script> </head> <body> <p>Фамилия</p> <input type="text" value="" id="surname"> <p>Имя</p> <input type="text" value="" id="name"> <p>Отчество</p> <input type="text" value="" id="parent"> <script type='text/javascript'> document.addEventListener('input', setCookie); getCookie(); function setCookie() { var date = new Date(); var inp = document.querySelectorAll('input'); date.setDate(date.getDate() + 1); date = date.toGMTString(); for(var i = 0; i < inp.length; i++) { document.cookie = inp[i].id + "=" + inp[i].value + "; expires=" + date + '; path=/'; }; }; function getCookie() { var arr = document.cookie.split('; '); for(var i = 0; i < arr.length; i++) { var v = arr[i].split('='); var k=v[0]; v=v[1]; var o=document.getElementById(k); if(o) { o.value = v; }; }; }; </script> </body> </html> Ищи различия... ;) |
Цитата:
|
Цитата:
Так что пока не решено. Жду помощи. |
Цитата:
|
АндрейD, вы можете для хранения своей печеньки использовать локальное хранилище. Я понимаю, что вы хотите, чтобы то, что вводит пользователь сохранялось. Для этой цели как раз подходит локальное хранилище! Вот ваш пример, который я изменил...
<p>Фамилия</p> <input id="surname"> <p>Имя</p> <input id="name"> <p>Отчество</p> <input id="parent"> <script> var inp = document.querySelectorAll("input"); document.addEventListener("input", setCookie); function setCookie() { var cookie = []; for(var i = 0; i < inp.length; i++) { cookie.push({ id: inp[i].id, value: inp[i].value }); } localStorage.cookie = JSON.stringify(cookie); } (function getCookie() { var cookie = JSON.parse(localStorage.cookie || "[]"); for (var i = 0; i < cookie.length; i++) { var input = document.getElementById(cookie[i].id); if(input) input.value = cookie[i].value; } })(); </script> АндрейD, вы поняли, что поменял в вашем коде ksa в посте №4? А то он утверждает, что у него полностью работающий код, а на деле получается, что он просто взял и добавил в начале бессмысленный комментарий к вашему коду и ещё в конце деструктуризацию руками раскрыл (типо человек-Бабель)... Я не понял, зачем нужны такие различия, не несущие никакой практической пользы! |
Цитата:
Дабы он увидел, что он делал не так. Для работы с куками больше подходят вот такие функции https://ruseller.com/lessons.php?id=593 |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 02:05. |