MediaWiki:Common.js
From Artifacts of Capitalism
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
mw.loader.using('mediawiki.util').then(function () {
function $(s, r){ return (r||document).querySelector(s); }
var toggler = document.querySelector('.p-navbar .navbar-toggler');
if (!toggler) return;
// Resolve the collapse element the button controls
var targetSel =
toggler.getAttribute('data-target') ||
toggler.getAttribute('data-bs-target') ||
(toggler.getAttribute('aria-controls') ? ('#' + toggler.getAttribute('aria-controls')) : null);
var collapse = targetSel ? document.querySelector(targetSel) : document.querySelector('.p-navbar .navbar-collapse');
if (!collapse) return;
// Toggle drawer
toggler.addEventListener('click', function (e) {
e.preventDefault();
var willOpen = !collapse.classList.contains('show');
collapse.classList.toggle('show', willOpen);
document.body.classList.toggle('offcanvas-open', willOpen);
toggler.setAttribute('aria-expanded', String(willOpen));
});
// Close when clicking outside or pressing Esc
document.addEventListener('click', function (e) {
if (!collapse.classList.contains('show')) return;
var inside = collapse.contains(e.target) || toggler.contains(e.target);
if (!inside) {
collapse.classList.remove('show');
document.body.classList.remove('offcanvas-open');
toggler.setAttribute('aria-expanded', 'false');
}
});
document.addEventListener('keydown', function (e) {
if (e.key === 'Escape' && collapse.classList.contains('show')) {
collapse.classList.remove('show');
document.body.classList.remove('offcanvas-open');
toggler.setAttribute('aria-expanded', 'false');
}
});
});