MediaWiki:Navigation.js
Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- 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.
// Faster Dynamic Navigation
// set up the words in your language
var NavigationBarHide = '▲';
var NavigationBarShow = '▼';
var NavigationTitleHide = 'hide contents';
var NavigationTitleShow = 'show contents';
// shows and hides content and picture (if available) of navigation bars
function toggleNavigationBar(e)
{
e = e || window.event;
var target = e.target || e.srcElement;
var NavFrame, NavToggle;
if (hasClass(target, 'navigation')) {
NavFrame = target.parentNode.parentNode;
NavToggle = target;
} else if (hasClass(target, 'NavHead')) {
NavFrame = target.parentNode;
if (hasClass(target.lastChild, 'navigation'))
NavToggle = target.lastChild;
else
return;
}
if (NavToggle.firstChild.data == NavigationBarHide) {
for (var NavChild=NavFrame.firstChild; NavChild != null; NavChild=NavChild.nextSibling) {
if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic'))
NavChild.style.display = 'none';
}
NavToggle.firstChild.data = NavigationBarShow;
NavToggle.parentNode.setAttribute('title', NavigationTitleShow);
} else if (NavToggle.firstChild.data == NavigationBarShow) {
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic'))
NavChild.style.display = 'block';
}
NavToggle.firstChild.data = NavigationBarHide;
NavToggle.parentNode.setAttribute('title', NavigationTitleHide);
}
}
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
// iterate over all div elements
var NavFrame=document.getElementsByTagName("div");
for (var i=0; i < NavFrame.length; i++)
{
if (!hasClass(NavFrame[i], "NavFrame"))
continue;
var NavToggle = document.createElement("a");
var NavToggleText = document.createTextNode(hasClass(NavFrame[i], "selected") ? NavigationBarShow : NavigationBarHide);
NavToggle.className = 'navigation';
NavToggle.appendChild(NavToggleText);
// add NavToggle-Button as element inside of NavHead
for (var j=0; j < NavFrame[i].childNodes.length; j++) {
var NavHead = NavFrame[i].childNodes[j];
if (!hasClass(NavHead, "NavHead"))
continue;
NavHead.appendChild(NavToggle);
NavHead.onclick = toggleNavigationBar;
// only bother to emulate click if if toggle button was added
if (document.createEvent) { // DOM 2 and DOM 3 compliant browsers
var e = document.createEvent("MouseEvents");
e.initMouseEvent("click", true,true, window, 0,0,0,0,0, false,false,false,false, 0, null);
NavHead.dispatchEvent(e);
} else if (NavHead.fireEvent) { // IE
NavHead.fireEvent("onclick");
}
break;
}
}
}
$( createNavigationBarToggleButton );