Comment désactiver la redirection du lien de résultats de recherche Google (sur clic droit) dans Chrome?

22

Une fois connecté à Google, les résultats de recherche Google sont redirigés (à des fins de suivi, etc.). C'est ennuyeux, car il n'est pas facile de copier / coller l'URL sans visiter le site. S'il n'y aurait pas de redirection, je ferais simplement un clic droit sur le lien dans les résultats de recherche et sélectionner "Copier l'adresse du lien". Maintenant, il est modifié par un code JavaScript Google qui surveille le clic droit.

Comment cela peut-il être désactivé sur Chrome? Je pense qu'il existait auparavant une extension Chrome, mais il semble ne plus fonctionner.

Rabarberski
la source
Quel est le but de votre clic droit?
Beniamin
4
@Beniamin: comme dit dans ma question: "copier [coller] l'URL". Je veux juste obtenir l'URL (par exemple pour coller dans un rapport, etc.)
Rabarberski
4
Pour info: il suffit de sélectionner le texte avec le curseur et d'appuyer sur ctrl-c n'est pas toujours une option, car google concatène de longues URL
Rabarberski
D'accord. Mais lorsque vous cliquez avec le bouton droit sur le lien, il se transforme en lien de suivi Google. Donc, vous n'obtiendrez ce lien que si vous ouvrez la page, Google vous redirigera vers la page souhaitée et vous aurez ce que vous voulez.
Beniamin
2
La question est exactement de savoir comment éviter cela. (il y avait une extension chrome avant (ne fonctionne plus), et un script greasemonkey pour firefox, mais la dernière fois que j'ai vérifié j'ai eu quelques problèmes avec ça. Donc dire "vous n'obtiendrez pas ce lien à moins d'ouvrir la page" n'a pas de sens).
Rabarberski

Réponses:

7

Maintenant, quand je sais ce que vous vouliez, j'ai écrit un petit script qui supprime l' onmousedownattribut du lien.

C'est ici:

// ==UserScript==
// @name           Delete onmousedown
// @namespace      google
// @include        http://www.google.*/*
// ==/UserScript==
var runOnce = function(){
    var items = document.querySelectorAll('li.g h3.r a');
    for(var i = 0, len = items.length; i< len; i++){
        items[i].removeAttribute('onmousedown');
    }
}
document.body.appendChild(document.createElement("script")).innerHTML = "("+runOnce+")()";

Enregistrez-le en tant que fichier qui se termine par .user.js et déposez-le sur Google Chrome et faites-moi savoir si cela a aidé.

PS. L'anglais n'est pas ma langue parlée, donc désolé de vous avoir mal compris.

Modifier: j'ai ajouté une logique supplémentaire pour que cela fonctionne avec Google Instant. Dites-moi si cela fonctionne pour vous.

Modifier: je suis revenu à la version "sans" l'assistance instantanée de Google.

Beniamin
la source
Merci pour l'effort. J'ai essayé quelque chose de similaire, cependant, lorsque je fais glisser le fichier de script sur Chrome, il est ouvert dans le navigateur, affichant le code source au lieu d'installer le script.
Rabarberski
Essayez Ctrl + O pour ouvrir le fichier. Et êtes-vous sûr de l'avoir nommé quelque chose comme: google.user.js?
Beniamin
Et j'ai lu que la fenêtre chrome doit être maximisée.
Beniamin
Ou installez une extension semblable à greasemonkey en chrome. Il vous aidera à installer des scripts et les scripts greasemonkey devraient fonctionner. Par exemple: chrome.google.com/webstore/detail/…
Beniamin
1
@Rabarberski, vous devrez alors cesser d'utiliser Google Instant.
Synetech
5

Essayez d'utiliser l' extension Chrome "indirecte" .

Il supprime ce suivi et cette redirection des résultats de recherche Google. Prend en charge l'utilisation de Google sur HTTP et HTTPS.

fkpwolf
la source
3

Si vous utilisez Firefox , vous avez de la chance car la réponse suivante s'applique à vous. Si vous utilisez Chrome, vous avez beaucoup moins de chance, voir le bas de cette réponse.

Greasemonkey déclenche les scripts utilisateur une fois le DOM chargé , vous n'avez donc pas besoin d'implémenter un écouteur "DOM ready".

Vous êtes également sur Firefox, vous pouvez donc utiliser des bonbons modernes: for...of, let.

Voici le script Greasemonkey résultant:

// ==UserScript==
// @name        Remove Google redirects
// @namespace   google
// @description Remove redirects from Google Search result links.
// @include     https://www.google.*/*
// @version     1
// @grant       none
// ==/UserScript==

for (let element of document.querySelectorAll('#res .r > a')) {
    element.removeAttribute('onmousedown');
}

Grâce au letil n'y a pas de déclarations locales, vous n'avez donc pas besoin de mettre le code ci-dessus dans un IIFE .


Pour les malheureux utilisateurs de Chrome (Tampermonkey):

Aucun lien n'est trouvé au moment de l'exécution du script, même si document.readyState === 'complete'… par conséquent, vous devez implémenter une boucle avec timer.

Vous vous retrouvez donc avec:

// ==UserScript==
// @name        Remove Google redirects
// @namespace   google
// @description Remove redirects from Google Search result links.
// @include     https://www.google.*/*
// @version     1
// @grant       none
// ==/UserScript==

(function removeGoogleRedirects() {

    var links = document.querySelectorAll('#res .r > a');

    if (links.length === 0) {
        setTimeout(removeGoogleRedirects, 100);
        return;
    }

    for (var link of links) {
        link.removeAttribute('onmousedown');
    }

})();

Mise à jour d'octobre 2018: en
raison d'un changement de balisage dans la page Google, il h3.rfallait le remplacer par div.r.
Je suis allé plus loin et remplacé h3.r > apar #res .r > a(remplacé "tag.class" par seulement ".class", et ajouté un parent comme sécurité pour que le sélecteur ne soit pas trop générique).

Gras Double
la source
Prendre le texte du script Firefox, et ajouter 'javascript:' au début, puis en faire un bookmarklet (une réponse à la bobobobo) a très bien fonctionné pour moi.
ojchase
0

Le script de Benjamin fonctionne pour moi si je change le sélecteur en: li.g div.vsc h3.r a

En fait, ce script utilisateur semble faire le travail:

Google Tracking-B-Gone pour Greasemonkey

Kai Carver
la source
0

Je trouve que ce scriptlet est plus facile à exécuter. Copiez-le et faites-le glisser vers votre barre de favoris et cliquez dessus avant de cliquer avec le bouton droit sur l'un des liens de résultats de recherche.

javascript: var items = document.getElementsByTagName('a');  for( var i = 0 ; i < items.length; i++ )  if( items[i].className=='l' )  items[i].onmousedown = null ;

Dieu que ces gens sont satan mais j'ai mis à jour le script donné par Beniamin, fonctionne à la date de ce post. Utilisez cette astuce pour alléger la page avant de supprimer certains éléments de leurs événements de souris. Vous devez utiliser TamperMonkey pour que cela fonctionne.

// ==UserScript==
// @name           Delete onmousedown
// @namespace      google
// @version        0.1
// @description    Allows you to right click links on Google search results without having them mangled on you.
// @include          http://www.google.*/*
// ==/UserScript==
var tid = setInterval( function () {
    if ( document.readyState !== 'complete' ) return;

    var items = document.getElementsByTagName('a');

    var succeeded=false;
    for( var i = 0 ; i < items.length; i++ )
    {
      if( items[i].className=='l' )
      {
        if( items[i].onmousedown ) { succeeded=true; } // we stripped the urls
        items[i].onmousedown = null ;
      }
    }

    if( succeeded )  clearInterval( tid ); // stop invoking this routine when we succeeded.
}, 100 );
bobobobo
la source