MediaWiki:Vector.js: различия между версиями

(Отмена правки 72137, сделанной Aylong (обсуждение))
Метки: отмена отменено
Нет описания правки
Метка: отменено
Строка 1: Строка 1:
$(window).on("load", function() {
function toggleTheme() {
     var isLightTheme = localStorage.getItem("isLightTheme");
  const body = document.querySelector('body');
     if (isLightTheme === "true") {
  if (body.classList.contains('dark')) {
        document.documentElement.setAttribute('data-theme', 'light');
     body.classList.remove('dark');
    } else {
     body.classList.add('light');
        document.documentElement.setAttribute('data-theme', 'dark');
    localStorage.setItem('theme', 'light');
    }
  } else {
    body.classList.remove('light');
    body.classList.add('dark');
    localStorage.setItem('theme', 'dark');
  }
}


    var button = document.createElement("button");
function getSavedTheme() {
    button.innerHTML = "Сменить тему";
  return localStorage.getItem('theme') || 'dark';
    button.className = "theme-button";
}
    button.onclick = toggleTheme;


    var container = document.getElementById("p-personal");
function initTheme() {
    if (container) {
  const savedTheme = getSavedTheme();
        container.parentNode.insertBefore(button, container);
  const body = document.querySelector('body');
    }
  body.classList.add(savedTheme);
});
}


function toggleTheme() {
function createThemeButton() {
    const root = document.documentElement;
  const personalElement = document.querySelector('#p-personal');
    const currentTheme = root.getAttribute('data-theme');
  const themeButton = document.createElement('button');
    const newTheme = currentTheme === 'light' ? 'dark' : 'light';
  themeButton.textContent = 'Сменить тему';
    root.setAttribute('data-theme', newTheme);
  themeButton.addEventListener('click', toggleTheme);
  personalElement.parentNode.insertBefore(themeButton, personalElement);
}


    localStorage.setItem("isLightTheme", newTheme === 'light');
document.addEventListener('DOMContentLoaded', function () {
}
  initTheme();
  createThemeButton();
});

Версия от 17:20, 4 мая 2024

function toggleTheme() {
  const body = document.querySelector('body');
  if (body.classList.contains('dark')) {
    body.classList.remove('dark');
    body.classList.add('light');
    localStorage.setItem('theme', 'light');
  } else {
    body.classList.remove('light');
    body.classList.add('dark');
    localStorage.setItem('theme', 'dark');
  }
}

function getSavedTheme() {
  return localStorage.getItem('theme') || 'dark';
}

function initTheme() {
  const savedTheme = getSavedTheme();
  const body = document.querySelector('body');
  body.classList.add(savedTheme);
}

function createThemeButton() {
  const personalElement = document.querySelector('#p-personal');
  const themeButton = document.createElement('button');
  themeButton.textContent = 'Сменить тему';
  themeButton.addEventListener('click', toggleTheme);
  personalElement.parentNode.insertBefore(themeButton, personalElement);
}

document.addEventListener('DOMContentLoaded', function () {
  initTheme();
  createThemeButton();
});