Открыть меню
Переключить меню настроек
Открыть персональное меню
Вы не представились системе
Ваш IP-адрес будет виден всем, если вы внесёте какие-либо изменения.

MediaWiki:Common.js

Страница интерфейса MediaWiki

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
jQuery(function($) {
    /**
     * Функция, которая находит якорь в URL, ищет соответствующий
     * сворачиваемый блок и раскрывает его.
     */
    function expandSectionFromHash() {
        // Получаем якорь из URL (например, "Уровень_5")
        var hash = window.location.hash.substring(1);
        if (!hash) {
            return; // Выходим, если якоря нет
        }

        // Декодируем якорь на случай, если он содержит кириллицу
        var decodedHash = decodeURIComponent(hash);
        
        // Ищем элемент-якорь на странице
        var $targetAnchor = $('#' + $.escapeSelector(decodedHash));
        if (!$targetAnchor.length) {
            return; // Выходим, если якорь не найден
        }

        // Находим блок для раскрытия (родитель якоря, а затем следующий блок)
        var $collapsibleBlock = $targetAnchor.closest('.visually-hidden').next('.collapsible-block');

        if ($collapsibleBlock.length) {
            // Находим внутри него сам сворачиваемый контент
            var $collapsibleContent = $collapsibleBlock.find('.mw-collapsible');
            
            // Если блок свёрнут, раскрываем его
            if ($collapsibleContent.hasClass('mw-collapsed')) {
                $collapsibleContent.removeClass('mw-collapsed');
                $collapsibleContent.attr('aria-expanded', 'true');
            }
        }
    }

    // 1. Выполняем функцию при первоначальной загрузке страницы
    // Мы ждём хук 'wikipage.content', чтобы убедиться, что контент точно на месте
    mw.hook('wikipage.content').add(expandSectionFromHash);

    // 2. Выполняем ТУ ЖЕ САМУЮ функцию каждый раз, когда меняется якорь в URL
    // (например, при клике на ссылку в содержании)
    $(window).on('hashchange', expandSectionFromHash);
});