// ==UserScript== // @name MediaWiki Redirects Fixer // @namespace blankie-scripts // @match https://*.wikipedia.org/* // @grant none // @version 1.0.0 // @author blankie // @description Fixes redirects of pages with anchors on Wikipedia/MediaWiki instances when Javascript is disabled // @inject-into content // @run-at document-end // ==/UserScript== "use strict"; function scrollToHash(scrollTo) { if (!scrollTo) { return; } let element = document.querySelector(scrollTo); if (element) { element.scrollIntoView(); } } for (let script of document.querySelectorAll("script")) { let match = /;RLCONF=({"[\s\S]+?});RLSTATE={"/.exec(script.textContent); if (!match) { continue; } let rlconf = JSON.parse(match[1]); if (rlconf.wgInternalRedirectTargetUrl) { let url = new URL(rlconf.wgInternalRedirectTargetUrl, location); let scrollTo = url.hash; if (location.hash) { url.hash = location.hash; scrollTo = null; } history.replaceState(null, "", url); scrollToHash(scrollTo); } break; }