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

后端 未结 2 1788
长情又很酷
长情又很酷 2020-11-28 15:08

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

2条回答
  •  一生所求
    2020-11-28 15:16

    The script should do these things:

    1. Detect if the current URL is already to the compact site.
    2. Load the compact version of the page if necessary.
    3. Beware of "anchor" URLS (they end with "fragments" or "hashes" (#...) ) and account for them.
    4. Keep the unwanted pages out of the browser history so that the back button works well. Only .compact URL's will be remembered.
    5. 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);
    }
    

提交回复
热议问题