Как реализовать сохранение темы для сайта?

Для реализации сохранения темы для сайта с использованием JavaScript есть несколько подходов. Здесь я расскажу о двух наиболее распространенных.

1. Использование cookies:

Cookies - это небольшие фрагменты данных, которые хранятся на стороне клиента и отправляются на сервер с каждым запросом. Используя cookies, вы можете сохранить информацию о выбранной теме для сайта.

Для сохранения темы в cookies вы можете использовать следующий код:

// Функция для установки cookies
function setCookie(name, value, days) {
  var expires = "";
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    expires = "; expires=" + date.toUTCString();
  }
  document.cookie = name + "=" + (value || "") + expires + "; path=/";
}

// Функция для получения значения cookies
function getCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
  }
  return null;
}

// Пример использования:
// Установка выбранной темы
var selectedTheme = "dark";
setCookie("theme", selectedTheme, 365);

// Получение выбранной темы
var savedTheme = getCookie("theme");

2. Использование localStorage:

localStorage - это встроенный объект в браузерах, который позволяет сохранять данные на стороне клиента без их истечения срока действия (в отличие от cookies).

Для сохранения темы в localStorage можно использовать следующий код:

// Установка выбранной темы
var selectedTheme = "dark";
localStorage.setItem("theme", selectedTheme);

// Получение выбранной темы
var savedTheme = localStorage.getItem("theme");

Важно отметить, что данные, хранящиеся в cookies и localStorage, будут доступны только на том же домене, с которого они были установлены. Это означает, что если ваш сайт имеет субдомены, данные из cookies или localStorage на одном субдомене не будут доступны на другом субдомене.

Таким образом, вы можете использовать любой из этих подходов для сохранения темы для вашего сайта с использованием JavaScript. Оба способа просты в использовании и эффективны для сохранения состояния темы между сеансами пользователей.