User:Kiteretsu/CleanDiffURLs.js
From Test Wiki
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/*
Gives clean diff URLs
Turns this: /w/index.php?title=Main_Page&diff=864711889&oldid=864629150&diffmode=source
Into this: /wiki/Special:Diff/864629150/864711889
*/
(function () {
setTimeout(function () { // Timeout to remove "&diffmode=source" which is added later
var url = new URL(window.location.href)
var oldid = url.searchParams.get("oldid")
var diff = url.searchParams.get("diff")
var hash = window.location.hash.substr(1) ? '#'+window.location.hash.substr(1) : ''
var output
if (oldid && !diff) {
output = 'Special:Permalink/' + oldid
} else if (oldid && diff === 'prev') {
output = 'Special:Diff/' + oldid
} else if (diff && oldid) {
output = 'Special:Diff/' + oldid + '/' + diff
}
if (output) {
window.history.replaceState({}, '', '/wiki/' + output + hash)
}
}, 50)
})()