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

Страница интерфейса MediaWiki
мНет описания правки
Метка: отменено
мНет описания правки
Метка: отменено
Строка 1: Строка 1:
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
// Объявляем функцию глобально
// Объявляем функцию глобально
window.toggleTheme = function() {
window.toggleTheme = function() {
Строка 15: Строка 13:
// Добавляем кнопку через jQuery
// Добавляем кнопку через jQuery
mw.loader.using('jquery').then(function() {
mw.loader.using('jquery').then(function() {
     mw.util.addPortletLink(
     $(function() {
    'p-tb', // Раздел "Инструменты"
        const button = $('<button>')
    '#',
            .text('🌓 Тема')
    '🌓 Тема',
            .css({
    'theme-switcher',
                position: 'fixed',
    'Переключить тему',
                bottom: '20px',
    null,
                right: '20px',
    $('#pt-preferences').next()
                zIndex: 1000,
).on('click', function(e) {
                padding: '10px',
    e.preventDefault();
                cursor: 'pointer',
    toggleTheme();
                background: '#fff',
                border: '1px solid #000'
            })
            .on('click', toggleTheme);
 
        $('body').append(button);
     });
     });
});
});

Версия от 14:01, 1 апреля 2025

// Объявляем функцию глобально
window.toggleTheme = function() {
    document.body.classList.toggle('dark-theme');
    localStorage.setItem('theme', document.body.classList.contains('dark-theme') ? 'dark' : 'light');
};

// Загрузка сохраненной темы
document.addEventListener('DOMContentLoaded', function() {
    const theme = localStorage.getItem('theme');
    if (theme === 'dark') document.body.classList.add('dark-theme');
});

// Добавляем кнопку через jQuery
mw.loader.using('jquery').then(function() {
    $(function() {
        const button = $('<button>')
            .text('🌓 Тема')
            .css({
                position: 'fixed',
                bottom: '20px',
                right: '20px',
                zIndex: 1000,
                padding: '10px',
                cursor: 'pointer',
                background: '#fff',
                border: '1px solid #000'
            })
            .on('click', toggleTheme);

        $('body').append(button);
    });
});