diff --git a/MediaWiki Redirects Fixer.user.js b/MediaWiki Redirects Fixer.user.js index 5536fc1..92bac0e 100644 --- a/MediaWiki Redirects Fixer.user.js +++ b/MediaWiki Redirects Fixer.user.js @@ -2,8 +2,11 @@ // @name MediaWiki Redirects Fixer // @namespace blankie-scripts // @match https://*.wikipedia.org/* +// @match https://wiki.archlinux.org/* +// @match https://wiki.winehq.org/* +// @match https://wiki.archiveteam.org/* // @grant none -// @version 1.0.0 +// @version 1.0.1 // @author blankie // @description Fixes redirects of pages with anchors on Wikipedia/MediaWiki instances when Javascript is disabled // @inject-into content @@ -29,7 +32,13 @@ for (let script of document.querySelectorAll("script")) { continue; } - let rlconf = JSON.parse(match[1]); + // Handle things like "wgCSPNonce":!1 + let rlconf = match[1].replaceAll(/(?<=[{,])("\w+":)!([01])(?=[,}])/g, function(_, p1, p2) { + let value = p2 == "0" ? "true" : "false"; + return `${p1}${value}`; + }); + rlconf = JSON.parse(rlconf); + if (rlconf.wgInternalRedirectTargetUrl) { let url = new URL(rlconf.wgInternalRedirectTargetUrl, location); let scrollTo = url.hash;