The script should do these things:
- Detect if the current URL is already to the compact site.
- Load the compact version of the page if necessary.
- Beware of “anchor” URLS (they end with “fragments” or “hashes” (
#...
) ) and account for them. - Keep the unwanted pages out of the browser history so that the back button works well. Only
.compact
URL’s will be remembered. - By running at
document-start
, the script can give better performance in this case.
To that end, this script works:
// ==UserScript==
// @name _Reddit, ensure compact site is used
// @match *://*.reddit.com/*
// @run-at document-start
// @grant none
// ==/UserScript==
var oldUrlPath = window.location.pathname;
/*--- Test that ".compact" is at end of URL, excepting any "hashes"
or searches.
*/
if ( ! /\.compact$/.test (oldUrlPath) ) {
var newURL = window.location.protocol + "//"
+ window.location.host
+ oldUrlPath + ".compact"
+ window.location.search
+ window.location.hash
;
/*-- replace() puts the good page in the history instead of the
bad page.
*/
window.location.replace (newURL);
}