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

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

Страница интерфейса MediaWiki
Нет описания правки
Нет описания правки
Строка 16: Строка 16:
         return; // Выходим, если якорь не найден
         return; // Выходим, если якорь не найден
     }
     }
console.log($targetAnchor);


     // Находим блок для раскрытия.
     // Находим блок для раскрытия.

Версия от 16:29, 12 июля 2025

/**
 * Этот скрипт автоматически разворачивает сворачиваемый блок (.collapsible-block),
 * если пользователь переходит на страницу по ссылке с якорем (#).
 * Версия 2.0 - Использует прямое изменение класса для большей надёжности.
 */
mw.hook('wikipage.content').add(function($content) {
    // Получаем якорь из URL (например, "Уровень_1"), если он есть
    var hash = window.location.hash.substring(1);
    if (!hash) {
        return; // Выходим, если якоря нет
    }

    // Находим на странице элемент с таким ID (это наш скрытый заголовок)
    var $targetAnchor = $content.find('#' + $.escapeSelector(hash));
    if (!$targetAnchor.length) {
        return; // Выходим, если якорь не найден
    }
console.log($targetAnchor);

    // Находим блок для раскрытия.
    // Логика: ищем родителя нашего якоря (.visually-hidden)
    // и берём СЛЕДУЮЩИЙ за ним элемент .collapsible-block.
    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');
        }
    }
});