MediaWiki:Common.js
Jump to navigation
Jump to search
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.
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */
/* Category A–Z jump bar (pages/subcats/files) */
mw.loader.using(['mediawiki.util'], function () {
// Only on normal views of Category: pages
if (mw.config.get('wgNamespaceNumber') !== 14) return;
if (mw.config.get('wgAction') !== 'view') return;
const pageName = mw.config.get('wgPageName'); // e.g. "Category:Foo_bar"
function addJumpBar(sectionSelector, paramName, fragmentId) {
const section = document.querySelector(sectionSelector);
if (!section) return;
const bar = document.createElement('div');
bar.className = 'mw-category-jumpbar';
bar.appendChild(document.createTextNode('Jump to: '));
const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
letters.forEach((ch, i) => {
const a = document.createElement('a');
a.textContent = ch;
a.href = mw.util.getUrl(pageName, { [paramName]: ch }) + fragmentId;
bar.appendChild(a);
if (i !== letters.length - 1) bar.appendChild(document.createTextNode(' · '));
});
// Put it at the top of that section
section.insertBefore(bar, section.firstChild);
}
// Pages list
addJumpBar('#mw-pages', 'pagefrom', '#mw-pages');
// Subcategories list (if present)
addJumpBar('#mw-subcategories', 'subcatfrom', '#mw-subcategories');
// Files list (if present)
addJumpBar('#mw-category-media', 'filefrom', '#mw-category-media');
});