Есть ли способ сослаться на предыдущую страницу для темы, которая там действовала, и применить ее к текущей странице при загрузке в JS?

#javascript #html

Вопрос:

У меня есть кнопка, которая при нажатии задает цветовую тему моего сайта. Код работает нормально, но когда я перехожу на другую страницу сайта, он возвращается к исходной цветовой теме. Есть ли способ сослаться на индекс предыдущей страницы для темы, которая действовала на этой странице, и применить ее к этой при загрузке в JS?

Прямо сейчас, если вы посещаете страницу, устанавливаете цветовую тему, переходите на другую страницу, затем возвращаетесь на первую страницу, она запоминает тему и устанавливает ее автоматически. Однако вам придется устанавливать его снова каждый раз, когда вы посещаете новую страницу.

Вот мой код:

 <a class="switch-light-blue" onclick="setTheme('theme-light-blue')"></a><a></a>

<script>
  // function to set a given theme/color-scheme
  function setTheme(themeName) {
    localStorage.setItem('theme', themeName);
    document.documentElement.className = themeName;
  }

  // Immediately invoked function to set the theme on initial load
  (function () {
    if (localStorage.getItem('theme') === 'theme-light-blue') {
      setTheme('theme-light-blue');
    }
</script>
 

Комментарии:

1. Чтобы сохранить информацию о странице, которая в данный момент не открыта, вам придется использовать какое-то хранилище данных за пределами JS, поскольку JS инициализируется каждый раз при загрузке страницы. Я бы посоветовал вам использовать какой-нибудь файл JSON на вашем сервере для сохранения текущей темы.

2. У тебя есть какие-нибудь идеи, как это сделать? Я никогда раньше не работал с файлами cookie

3. Вы также можете сделать это без файлов cookie. Просто тебе придется немного научиться АЯКСУ. Вот ссылка на статью

4. Большое вам спасибо!