Google Tracking-B-Gone

Strips click tracking from Google search results

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// Google Tracking-B-Gone
// version 3.1
// Release Date: 2019-10-20
// https://greasyfork.org/en/scripts/1810-google-tracking-b-gone
// https://github.com/stacybrock/google-tracking-b-gone
//
// ===== INSTRUCTIONS =====
//
// This is a Tampermonkey user script.
//
// To use this script, get Tampermonkey: https://tampermonkey.net
// After you've installed it, come back to this page. A dialog box will
// appear asking you if you want to install this script.
//
// To uninstall, open the Tampermonkey dashboard and click the delete
// icon next to "Google Tracking-B-Gone" in the list of installed
// scripts.
//
//
// ==UserScript==
// @name           Google Tracking-B-Gone
// @namespace      http://notoriety.org
// @version        3.1
// @description    Strips click tracking from Google search results
//
// @include        http://www.google.*
// @include        https://www.google.*
//
// @grant          none
// ==/UserScript==

var debug = false;

debug && console.log("Google Tracking-B-Gone initialized.");

var checkMutation = function(mutation) {
  var target = mutation.target;
  if (target && target.nodeName.toLowerCase() === 'a') {
    cleanLink(target);
  } else if (target instanceof Element) {
    target.querySelectorAll('a').forEach(cleanLink);
  }
};

var changeObserver = new MutationObserver(function(mutations) {
  if (mutations.target) {
    checkMutation(mutations);
  } else {
    mutations.forEach && mutations.forEach(checkMutation);
  }
});
changeObserver.observe(document.documentElement, {
    childList: true,
    subtree: true,
    attributes: true,
    attributeFilter: ['href']
});

var blockEvent = function (event) {
  event.stopPropagation();
};

var blockEvent2 = function (event) {
  this.getAttribute('role') !== 'button' && event.stopPropagation();
};

function cleanLink(link) {
  debug && console.log("cleanLink() called...");
  link.onmousedown = link.onmouseup = link.onmouseenter = link.onmousemove =
      link.ondbclick = link.oncontextmenu = blockEvent;
  link.onclick = blockEvent2;
}