Alexeina66
Мой дом здесь!
- Регистрация
- 26 Авг 2013
- Сообщения
- 426
- Реакции
- 446
- Автор темы
- #1
Всем привет!
Есть скрипт который переключает стили при переключении чекбокса
Работает отлично, но не работает на тех страницах, где нет самого чекбокса, а нужно, чтобы работал скрипт везде.
Ошибку получаю по строке
Есть скрипт который переключает стили при переключении чекбокса
Работает отлично, но не работает на тех страницах, где нет самого чекбокса, а нужно, чтобы работал скрипт везде.
Код:
'use strict';
// создаем <link rel="stylesheet" href="light|dark.css">
let head = document.head,
link = document.createElement('link');
link.rel = 'stylesheet';
// проверяем значение из localStorage если dark то темная тема
if (localStorage.getItem('themeStyle') === 'dark') {
link.href = 'dark.css'; // ссылка на темный стиль
document.getElementById('switch-1').setAttribute('checked', true); // переключаем чекбокс в положение "темная тема"
}
// по умолчанию светлая тема
else {
link.href = 'light.css'; // ссылка на светлый стиль
}
head.appendChild(link); // вставляем <link rel="stylesheet" href="light|dark.css"> в шапку страницы между тегами head
// событие при переключении чекбокса
document.getElementById('switch-1').addEventListener('change', ev => {
let btn = ev.target;
// если чекбокс включен
if (btn.checked) {
link.href = 'dark.css'; // сключаем темную тему
localStorage.setItem('themeStyle', 'dark'); // записываем значение в localStorage
}
else {
link.href = 'light.css'; // включаем светлую тему
localStorage.setItem('themeStyle', 'light'); // записываем значение в localStorage
}
});
Код:
document.getElementById('switch-1').setAttribute('checked', true);