MediaWiki:Common.js: Difference between revisions
MediaWiki interface page
More actions
No edit summary Tag: Reverted |
No edit summary Tag: Manual revert |
||
| (10 intermediate revisions by 2 users not shown) | |||
| Line 8: | Line 8: | ||
document.getElementsByTagName('head')[0].appendChild(link); | document.getElementsByTagName('head')[0].appendChild(link); | ||
mw.loader.using(['mediawiki.util'], function () { | |||
// Wait until the DOM really exists | |||
$(function () { | |||
function enableClickboxes() { | |||
$('.clickbox').each(function () { | |||
var $el = $(this); | |||
// Avoid double-binding | |||
if ($el.data('clickbox-bound')) return; | |||
$el.data('clickbox-bound', true); | |||
// Attach click | |||
$el.on('click', function () { | |||
var target = $el.data('target'); | |||
if (!target) return; | |||
// If it's a wiki page name (no slash), convert to URL | |||
if (!/^(https?:)?\/\//.test(target) && target.indexOf('/') !== 0) { | |||
target = mw.util.getUrl(String(target)); | |||
} | |||
window.location.href = target; | |||
}); | |||
// Keyboard accessibility | |||
$el.attr('role', 'link').attr('tabindex', '0'); | |||
$el.on('keydown', function (e) { | |||
if (e.key === 'Enter' || e.key === ' ') { | |||
e.preventDefault(); | |||
$el.click(); | |||
} | |||
}); | |||
}); | |||
} | |||
// Run once now | |||
enableClickboxes(); | |||
// And again whenever MediaWiki adds content dynamically | |||
mw.hook('wikipage.content').add(enableClickboxes); | |||
}); | |||
}); | |||
Latest revision as of 18:02, 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);
mw.loader.using(['mediawiki.util'], function () {
// Wait until the DOM really exists
$(function () {
function enableClickboxes() {
$('.clickbox').each(function () {
var $el = $(this);
// Avoid double-binding
if ($el.data('clickbox-bound')) return;
$el.data('clickbox-bound', true);
// Attach click
$el.on('click', function () {
var target = $el.data('target');
if (!target) return;
// If it's a wiki page name (no slash), convert to URL
if (!/^(https?:)?\/\//.test(target) && target.indexOf('/') !== 0) {
target = mw.util.getUrl(String(target));
}
window.location.href = target;
});
// Keyboard accessibility
$el.attr('role', 'link').attr('tabindex', '0');
$el.on('keydown', function (e) {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
$el.click();
}
});
});
}
// Run once now
enableClickboxes();
// And again whenever MediaWiki adds content dynamically
mw.hook('wikipage.content').add(enableClickboxes);
});
});