MediaWiki:Common.js: Difference between revisions
No edit summary |
No edit summary |
||
| Line 19: | Line 19: | ||
disableMapFocus(); | disableMapFocus(); | ||
setTimeout(disableMapFocus, 500); | setTimeout(disableMapFocus, 500); | ||
})(); | |||
// Log whatever ends up focused (and where it is) during/after load | |||
window.addEventListener("focusin", (e) => { | |||
const el = e.target; | |||
console.log("[focusin]", el, "id=", el.id, "class=", el.className); | |||
console.log(" activeElement:", document.activeElement); | |||
console.log(" scrollY:", window.scrollY); | |||
}, true); | |||
// Also catch programmatic focus calls (helpful if some code calls .focus()) | |||
(() => { | |||
const orig = HTMLElement.prototype.focus; | |||
HTMLElement.prototype.focus = function (...args) { | |||
console.log("[focus() called on]", this, "id=", this.id, "class=", this.className); | |||
return orig.apply(this, args); | |||
}; | |||
})(); | })(); | ||
Revision as of 19:34, 14 January 2026
/* Any JavaScript here will be loaded for all users on every page load. */
/**
* Prevent Leaflet maps from auto-scrolling page on load
* by removing focusability from the map container
*/
(function() {
'use strict';
function disableMapFocus() {
var maps = document.querySelectorAll('.maps-leaflet');
maps.forEach(function(map) {
map.removeAttribute('tabindex');
});
}
// Run immediately and again after a delay (maps initialize asynchronously)
disableMapFocus();
setTimeout(disableMapFocus, 500);
})();
// Log whatever ends up focused (and where it is) during/after load
window.addEventListener("focusin", (e) => {
const el = e.target;
console.log("[focusin]", el, "id=", el.id, "class=", el.className);
console.log(" activeElement:", document.activeElement);
console.log(" scrollY:", window.scrollY);
}, true);
// Also catch programmatic focus calls (helpful if some code calls .focus())
(() => {
const orig = HTMLElement.prototype.focus;
HTMLElement.prototype.focus = function (...args) {
console.log("[focus() called on]", this, "id=", this.id, "class=", this.className);
return orig.apply(this, args);
};
})();