MediaWiki:Common.js: Difference between revisions
MediaWiki interface page
More actions
No edit summary |
No edit summary |
||
| Line 8: | Line 8: | ||
document.getElementsByTagName('head')[0].appendChild(link); | document.getElementsByTagName('head')[0].appendChild(link); | ||
$(document). | /* MediaWiki:Common.js */ | ||
mw.loader.using(['jquery', 'mediawiki.util'], function () { | |||
$(function () { | |||
// Click handler (delegated) | |||
$(document).on('click', '.clickbox', function (e) { | |||
var $el = $(this); | |||
var target = $el.data('target'); | |||
if (!target) return; // nothing to do | |||
// If target is a plain wiki page name (no leading / and no protocol), | |||
// convert to a proper URL using mw.util.getUrl | |||
if (!/^(https?:)?\/\//.test(target) && target.indexOf('/') !== 0) { | |||
target = mw.util.getUrl(String(target)); | |||
} | |||
// Navigate | |||
window.location.href = target; | |||
}); | |||
// Keyboard accessibility: Enter or Space triggers click | |||
$(document).on('keydown', '.clickbox', function (e) { | |||
if (e.key === 'Enter' || e.key === ' ') { | |||
e.preventDefault(); | |||
$(this).trigger('click'); | |||
} | |||
}); | |||
}); | }); | ||
}); | }); | ||
Revision as of 10:40, 28 November 2025
/* Any JavaScript here will be loaded for all users on every page load. */
// Add favicon
var link = document.createElement('link');
link.rel = 'icon';
link.type = 'image/x-icon';
link.href = '/images/favicon.png';
document.getElementsByTagName('head')[0].appendChild(link);
/* MediaWiki:Common.js */
mw.loader.using(['jquery', 'mediawiki.util'], function () {
$(function () {
// Click handler (delegated)
$(document).on('click', '.clickbox', function (e) {
var $el = $(this);
var target = $el.data('target');
if (!target) return; // nothing to do
// If target is a plain wiki page name (no leading / and no protocol),
// convert to a proper URL using mw.util.getUrl
if (!/^(https?:)?\/\//.test(target) && target.indexOf('/') !== 0) {
target = mw.util.getUrl(String(target));
}
// Navigate
window.location.href = target;
});
// Keyboard accessibility: Enter or Space triggers click
$(document).on('keydown', '.clickbox', function (e) {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
$(this).trigger('click');
}
});
});
});