Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
- Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
- Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
- Opera: Нажмите Ctrl+F5.
// MediaWiki:Common.js
mw.loader.using('jquery').then(function() {
$(function() {
if (window.matchMedia("(max-width: 768px)").matches) {
// Создаем кнопку меню
var $toggleButton = $('<button>')
.addClass('citizen-mobile-menu-toggle')
.html('☰ Меню')
.css({
'background': 'transparent',
'border': 'none',
'color': '#fff',
'cursor': 'pointer',
'padding': '10px'
});
// Вставляем кнопку в нужное место
var $headerTools = $('.citizen-header__tools');
if ($headerTools.length) {
$headerTools.prepend($toggleButton);
} else {
$('.citizen-header__end').prepend($toggleButton);
}
// Находим целевое меню
var $targetMenu = $('.citizen-header__menu');
// Обработчик клика
$toggleButton.on('click', function() {
$targetMenu.toggleClass('is-visible');
});
}
});
});
window.toggleTheme = function() {
document.body.classList.toggle('dark-theme');
localStorage.setItem('theme', document.body.classList.contains('dark-theme') ? 'dark' : 'light');
};
document.addEventListener('DOMContentLoaded', function() {
var savedTheme = localStorage.getItem('theme');
if (savedTheme === 'dark') document.body.classList.add('dark-theme');
});
mw.hook('citizen.load').add(function() {
var button = document.createElement('button');
button.textContent = '🌓 Тема';
button.style.cssText = 'margin: 0 10px; padding: 8px 12px; cursor: pointer;';
button.onclick = toggleTheme;
var headerTools = document.querySelector('.citizen-header__tools');
if (headerTools) {
headerTools.insertBefore(button, headerTools.firstChild);
}
});
// Отключаем регистрацию Service Worker
if ('serviceWorker' in navigator) {
navigator.serviceWorker.getRegistrations().then(function(registrations) {
for (var i = 0; i < registrations.length; i++) { // Исправлено: ES5-совместимый цикл
registrations[i].unregister();
}
});
}