• # violentmonkey

    Posté par . En réponse au journal Fin des résultats directs sans Javascript sur Google. Évalué à 1. Dernière modification le 10 février 2021 à 21:12.

    Améliorations de https://greasyfork.org/scripts/19713
    (mais pas encore parfait)

    // ==UserScript==
    // @name Remove-redirects
    // @namespace google.com.rr
    // @description Remove all link redirection on Google Search Results,and Google image Search!
    // @homepageURL https://greasyfork.org/scripts/19713
    // @include https://www.google.*
    // @grant none
    // @version 2021年01月01日
    // ==/UserScript==
    // Remove events listeners on a node (but not its children)
    function recreateNode(el, withChildren) {
     if (withChildren) {
     el.parentNode.replaceChild(el.cloneNode(true), el);
     }
     else {
     var newEl = el.cloneNode(false);
     while (el.hasChildNodes()) newEl.appendChild(el.firstChild);
     el.parentNode.replaceChild(newEl, el);
     }
    }
    // Remove upper tracking <div>
    function removeEvents(cls = 'div.tF2Cxc') {
     console.log("remove events");
     for (let node of document.querySelectorAll(cls)) {
     recreateNode(node);
     console.log(node);
     }
    }
    (function() {
     window.setTimeout(() => {
     // Remove top-level event trackers
     removeEvents('html');
     removeEvents();
     }, 1000);
    })();
    main.addEventListener('mousedown', ev => {
     removeEvents();
     if (ev.target.closest('a[jsaction^="mousedown:irc."] > img')) ev.stopPropagation();
     // Clean-up redirect href links
     let link = ev.target.closest('a[href^="/url"')
     if (link) {
     var a = new URLSearchParams(link.href);
     console.log(`Map from ${link.href} to ${a.get('url')}`);
     link.href = a.get('url');
     }
    });
    Object.defineProperty(window, 'rwt', { writable: false });

    Mention spécial du problème de retirer du DOM des events listeners dont on est pas l'auteur.