Не сохраняются 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, время: 05:31. |