Дополнительные действия
Gardolir (обсуждение | вклад) Нет описания правки |
Gardolir (обсуждение | вклад) Нет описания правки |
||
| Строка 7: | Строка 7: | ||
// Получаем якорь из URL (например, "Уровень_1"), если он есть | // Получаем якорь из URL (например, "Уровень_1"), если он есть | ||
var hash = window.location.hash.substring(1); | var hash = window.location.hash.substring(1); | ||
console.log(hash ); | |||
if (!hash) { | if (!hash) { | ||
return; // Выходим, если якоря нет | return; // Выходим, если якоря нет | ||
Версия от 16:29, 12 июля 2025
/**
* Этот скрипт автоматически разворачивает сворачиваемый блок (.collapsible-block),
* если пользователь переходит на страницу по ссылке с якорем (#).
* Версия 2.0 - Использует прямое изменение класса для большей надёжности.
*/
mw.hook('wikipage.content').add(function($content) {
// Получаем якорь из URL (например, "Уровень_1"), если он есть
var hash = window.location.hash.substring(1);
console.log(hash );
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');
}
}
});