Disable Google Search Result URL Redirector

Disable Google URL redirector (i.e. user data tracking) on Google Search result, including Google Custom Search Engine (CSE) which is used by many websites.

Verzia zo dňa 13.10.2017. Pozri najnovšiu verziu.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name        Disable Google Search Result URL Redirector
// @namespace   DisableGoogleSearchResultURLRedirector
// @description Disable Google URL redirector (i.e. user data tracking) on Google Search result, including Google Custom Search Engine (CSE) which is used by many websites.
// @version     1.0.2
// @author      jcunews
// @include     *://*/*
// @grant       none
// @run-at      document-start
// ==/UserScript==

(function() {
    var orgCreateElement;

    //wait for CSE to finish its initialization
    function waitCse() {
      if (window.google && google.search && google.search.B && google.search.B.prototype.Fq) {
        //disable redirector
        google.search.B.prototype.Fq = function(){};
      } else setTimeout(waitCse, 20);
    }

    //check if newly loaded script is CSE
    function checkCse(ev) {
      if (window.__gcse) {
        document.createElement = orgCreateElement;
        waitCse();
      }
    }

    if ((/www\.google\.[a-z]+(\.[a-z]+)?/).test(location.hostname)) {
      //Google website: disable URL redirector generator function
      (function check() {
        if (window.rwt) {
          window.rwt = function() { return true };
        } else setTimeout(check, 10);
      })();
    } else {
      //other websites:
      //monitor for any CSE initialization
      orgCreateElement = document.createElement;
      document.createElement = function(tag) {
        var res = orgCreateElement.apply(this, arguments);
        if (tag.toLowerCase() === "script") res.addEventListener("load", checkCse);
        return res;
      };
      //disable ads
      HTMLElement.prototype.insertBefore = function(ele) {
        if ((/:\/\/cse\.google\.com\/adsense\/search\/(async-)?ads\.js/).test(ele.src)) return ele;
        return Node.prototype.insertBefore.apply(this, arguments);
      };
    }
})();