Add parameters to the URL (redirect) via a Greasemonkey/Tampermonkey/Userscript

greasemonkey, redirect, tampermonkey, url, userscripts

Solution

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);
}

Problem

I'd like to write a Greasemonkey/userscript that automatically adds `.compact` to URLs starting with https://pay.reddit.com/ so It automatically redirects me to the mobile version. I've been looking at similar userscripts, particularly this one: https://userscripts.org/scripts/review/112568 trying to figure out how to edit the replacement pattern, but I lack skills in this domain. How do I write a Greasemonkey script that redirects me from `https://pay.reddit.com/*` to `https://pay.reddit.com/*.compact` ? Thanks

Original source

Related problems