#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. Большое вам спасибо!