MediaWiki:Anisa.js: Unterschied zwischen den Versionen
Aus Phoenix-Larp Wiki
Becko (Diskussion | Beiträge) Inhaltsverzeichnis im Anisa-Skin rechts anzeigen |
Becko (Diskussion | Beiträge) Inhaltsverzeichnis in die Anisa-Seitenleiste integrieren |
||
| Zeile 1: | Zeile 1: | ||
/* Inhaltsverzeichnis | /* Inhaltsverzeichnis in die Anisa-Seitenleiste integrieren */ | ||
(function () { | (function () { | ||
function initAnisaToc() { | |||
if (!document.body.classList.contains('skin-anisa')) { | if (!document.body.classList.contains('skin-anisa')) { | ||
return; | return; | ||
| Zeile 7: | Zeile 7: | ||
var toc = document.getElementById('toc'); | var toc = document.getElementById('toc'); | ||
var navigation = document.getElementById('site-navigation'); | |||
var toolbox = document.getElementById('p-tb'); | |||
if (!toc || toc.dataset.anisaTocInitialized) { | if (!toc || !navigation || toc.dataset.anisaTocInitialized) { | ||
return; | return; | ||
} | } | ||
| Zeile 17: | Zeile 19: | ||
toc.parentNode.insertBefore(marker, toc); | toc.parentNode.insertBefore(marker, toc); | ||
var | var portlet = document.createElement('div'); | ||
portlet.id = 'p-page-toc'; | |||
portlet.className = 'mw-portlet'; | |||
portlet.setAttribute('role', 'navigation'); | |||
portlet.setAttribute('aria-labelledby', 'p-page-toc-label'); | |||
var mediaQuery = window.matchMedia('(min-width: | var heading = document.createElement('h3'); | ||
heading.id = 'p-page-toc-label'; | |||
heading.textContent = 'Inhaltsverzeichnis'; | |||
var body = document.createElement('div'); | |||
body.className = 'mw-portlet-body'; | |||
portlet.appendChild(heading); | |||
portlet.appendChild(body); | |||
if (toolbox) { | |||
navigation.insertBefore(portlet, toolbox); | |||
} else { | |||
navigation.appendChild(portlet); | |||
} | |||
var mediaQuery = window.matchMedia('(min-width: 769px)'); | |||
function positionToc() { | function positionToc() { | ||
if (mediaQuery.matches) { | if (mediaQuery.matches) { | ||
body.appendChild(toc); | |||
portlet.hidden = false; | |||
} else { | } else { | ||
if (marker.parentNode) { | if (marker.parentNode) { | ||
marker.parentNode.insertBefore(toc, marker.nextSibling); | marker.parentNode.insertBefore(toc, marker.nextSibling); | ||
} | } | ||
portlet.hidden = true; | |||
} | } | ||
} | } | ||
| Zeile 44: | Zeile 62: | ||
mediaQuery.addListener(positionToc); | mediaQuery.addListener(positionToc); | ||
} | } | ||
}); | } | ||
mw.hook('wikipage.content').add(initAnisaToc); | |||
})(); | })(); | ||
Version vom 6. September 2026, 09:43 Uhr
/* Inhaltsverzeichnis in die Anisa-Seitenleiste integrieren */
(function () {
function initAnisaToc() {
if (!document.body.classList.contains('skin-anisa')) {
return;
}
var toc = document.getElementById('toc');
var navigation = document.getElementById('site-navigation');
var toolbox = document.getElementById('p-tb');
if (!toc || !navigation || toc.dataset.anisaTocInitialized) {
return;
}
toc.dataset.anisaTocInitialized = '1';
var marker = document.createComment('Position des Inhaltsverzeichnisses');
toc.parentNode.insertBefore(marker, toc);
var portlet = document.createElement('div');
portlet.id = 'p-page-toc';
portlet.className = 'mw-portlet';
portlet.setAttribute('role', 'navigation');
portlet.setAttribute('aria-labelledby', 'p-page-toc-label');
var heading = document.createElement('h3');
heading.id = 'p-page-toc-label';
heading.textContent = 'Inhaltsverzeichnis';
var body = document.createElement('div');
body.className = 'mw-portlet-body';
portlet.appendChild(heading);
portlet.appendChild(body);
if (toolbox) {
navigation.insertBefore(portlet, toolbox);
} else {
navigation.appendChild(portlet);
}
var mediaQuery = window.matchMedia('(min-width: 769px)');
function positionToc() {
if (mediaQuery.matches) {
body.appendChild(toc);
portlet.hidden = false;
} else {
if (marker.parentNode) {
marker.parentNode.insertBefore(toc, marker.nextSibling);
}
portlet.hidden = true;
}
}
positionToc();
if (mediaQuery.addEventListener) {
mediaQuery.addEventListener('change', positionToc);
} else {
mediaQuery.addListener(positionToc);
}
}
mw.hook('wikipage.content').add(initAnisaToc);
})();