Содержание
Создание куки
Несколько способов установить куки с именем city с помощью JavaScript.
// Установка на 30 дней с путем для всего сайта
let date = new Date();
date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000));
document.cookie = "city=Москва; expires=" + date.toUTCString() + "; path=/";
Готовая функция для установки куки
function setCookie(name, value, days = 30) {
let expires = "";
if (days) {
let date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + encodeURIComponent(value) + expires + "; path=/";
}
// Использование
setCookie('city', 'Москва');
Установка с обработкой кириллицы
function setCity(cityName) {
// Кодируем значение для корректного сохранения кириллицы
let encodedValue = encodeURIComponent(cityName);
// Устанавливаем срок действия на 30 дней
let date = new Date();
date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000));
// Устанавливаем куки
document.cookie = `city=${encodedValue}; expires=${date.toUTCString()}; path=/; SameSite=Lax`;
console.log(`Город "${cityName}" сохранен в куки`);
}
// Использование
setCity('Москва');
Получение куки
Получение куки с именем city
function getCityCookie() {
let cookies = document.cookie.split('; ');
for (let i = 0; i < cookies.length; i++) {
let cookie = cookies[i].split('=');
if (cookie[0] === 'city') {
return decodeURIComponent(cookie[1]);
}
}
return null;
}
// Использование
let city = getCityCookie();
Получение с проверкой существования
function getCity() {
let cookieValue = document.cookie
.split('; ')
.find(row => row.startsWith('city='));
if (cookieValue) {
return decodeURIComponent(cookieValue.split('=')[1]);
}
return null;
}
let city = getCity();
if (city) {
console.log('Город:', city);
} else {
console.log('Куки city не найдена');
}
Получение с обработкой закодированных значений
function getCookie(name) {
let value = "; " + document.cookie;
let parts = value.split("; " + name + "=");
if (parts.length === 2) {
return decodeURIComponent(parts.pop().split(";").shift());
}
return null;
}
let city = getCookie('city');
console.log(city);

