Add MediaWiki Redirects Fixer
This commit is contained in:
parent
148f9eb43d
commit
2f94174353
|
@ -0,0 +1,46 @@
|
|||
// ==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;
|
||||
}
|
|
@ -87,6 +87,11 @@ elements
|
|||
Removes image loading placeholders from images loaded via Javascript, such as
|
||||
https://closeronline.co.uk, https://wired.com, and https://knowyourmeme.com.
|
||||
|
||||
## MediaWiki Redirects Fixer
|
||||
|
||||
Fixes redirects of pages with anchors on Wikipedia/MediaWiki instances when
|
||||
Javascript is disabled
|
||||
|
||||
## nightly.link buttons
|
||||
|
||||
A script to add [nightly.link](https://nightly.link) buttons on artifacts and
|
||||
|
|
Loading…
Reference in New Issue