MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 567: | Строка 567: | ||
} | } | ||
}); | }); | ||
// Функция для обработки якорей | |||
function handleAnchorChange() { | |||
var anchor = window.location.hash.substring(1); // Получаем текущий хеш без символа # | |||
var found = false; | |||
// Проверка категорий | |||
for (var i = 0; i < categories.length; i++) { | |||
if (categories[i].id === anchor) { | |||
switchCategory(i); // Открываем категорию | |||
found = true; | |||
break; | |||
} | |||
} | |||
// Проверка пунктов меню, если якорь не найден в категориях | |||
if (!found) { | |||
for (var i = 0; i < menuItems.length; i++) { | |||
if (menuItems[i].id === anchor) { | |||
var categoryIndex = Array.prototype.indexOf.call(categories, menuItems[i].closest('.navigation__categories > div')); | |||
switchCategory(categoryIndex); // Открываем категорию | |||
switchContent(menuItems[i]); // Открываем пункт меню | |||
found = true; | |||
break; | |||
} | |||
} | |||
} | |||
// Если якорь не найден, открываем первую категорию | |||
if (!found) { | |||
switchCategory(0); | |||
} | |||
} | |||
// Проверяем якорь при загрузке страницы | |||
window.addEventListener('hashchange', handleAnchorChange); | |||
document.addEventListener('DOMContentLoaded', handleAnchorChange); | |||
// Инициализация: открытие первой категории и первого пункта | // Инициализация: открытие первой категории и первого пункта | ||