Не запоминается значение в localStorage

317
13 января 2017, 10:55

Код предназначен для выбора css файла для сайта. Почему не запоминается выбор стиля и нет возможности применить стиль повторно, т.е если нажал на <li onclick="setCssTheme('theme1')"></li> а потом на <li onclick="setCssTheme('theme2')"></li> то первый уже не нажимается.

кнопки

<ul class="colors">
<li onclick="setCssTheme('theme1')"></li>                    
<li onclick="setCssTheme('theme2')"></li>
<li onclick="setCssTheme('theme3')"></li>
<li onclick="setCssTheme('theme4')"></li>
<li onclick="setCssTheme('theme5')"></li>
<li onclick="setCssTheme('theme6')"></li>
</ul>

js

// Сохранение темы в localStorage
const saveCssTheme = function (themes) {
localStorage.cssTheme = themes;
}
// Получение темы из localStorage, либо дефолтной
const getCssTheme = function () {
return localStorage.cssTheme || 'theme1';
}
// Загрузка css файла
const loadCssTheme = function (themes) {
const link = document.createElement('link');
link.id = themes;
link.type = "text/css";
link.rel = 'stylesheet';
link.href = `/css/${themes}.css`;
// если мы уже загрузили стили, то не нужно делать это еще раз
if(document.getElementById(themes)) return;
document.head.appendChild(link);
}
// Установка темы
const setCssTheme = function(themes) {
loadCssTheme(themes);
saveCssTheme(themes);
document.body.setAttribute('class', themes);
}
// Использование при загрузке страницы
document.addEventListener("load", function () {
const themes = getCssTheme();
setCssTheme(themes);
});
READ ALSO
План изучения Битрикс [требует правки]

План изучения Битрикс [требует правки]

Подскажите, пожалуйста, как правильнее начать изучать CMS Битрикс?

311
Как изнутри узнать айди iframe-родителя?

Как изнутри узнать айди iframe-родителя?

А в 1php скрипт, но он берёт id первого iframe, а нужно чтоб своего родителя:

322
HTML 5 Notifications

HTML 5 Notifications

ЗдравствуйтеЕсть браузерные уведомления

331