Como desativar o redirecionamento do link do resultado de pesquisa do Google (com o botão direito do mouse) no Chrome?

22

Quando conectado ao Google, os resultados de pesquisa do Google são redirecionados (para fins de rastreamento etc.). Isso é irritante, pois não é fácil copiar / colar o URL sem visitar o site. Se não houver redirecionamento, basta clicar com o botão direito do mouse no link nos resultados da pesquisa e selecionar "Copiar endereço do link". Agora ele é alterado por algum código JavaScript do Google que monitora o clique com o botão direito.

Como isso pode ser desativado no Chrome? Acho que costumava haver uma extensão do Chrome, mas parece não estar mais funcionando.

Rabarberski
fonte
Qual é o objetivo do seu clique com o botão direito?
Beniamin
4
@Beniamin: como dito na minha pergunta: "copiar [colar] o URL". Eu só quero obter o URL (por exemplo, para colar em um relatório etc.)
Rabarberski
4
FYI: Basta selecionar o texto com o cursor e pressionando ctrl-c nem sempre é uma opção, porque o Google concatena URLs longas
Rabarberski
Está bem. Mas quando você clica com o botão direito do mouse no link, ele muda para o link de rastreamento do Google. Portanto, você não receberá esse link a menos que abra a página, o Google o redirecionará para a página desejada e você terá o que deseja.
Beniamin
2
A questão é exatamente como evitar isso. (havia alguma extensão do Chrome antes (não funciona mais) e algum script greasemonkey para o firefox, mas da última vez que verifiquei, tive alguns problemas com isso. Dizendo "você não obterá esse link a menos que abra a página" não faz sentido).
Rabarberski

Respostas:

7

Agora, quando eu sei o que você queria, escrevi um pequeno script que exclui o onmousedownatributo do link.

Aqui está:

// ==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+")()";

Salve-o como um arquivo que termina com .user.js e solte-o no Google Chrome e deixe-me saber se ajudou.

PS. Inglês não é minha língua falada, desculpe-me por ter entendido errado.

Editar: eu adicionei lógica extra para que funcione com o Google Instant. Diga-me se funciona para você.

Editar: voltei à versão "sem" suporte do Google Instant.

Beniamin
fonte
Obrigado pelo esforço. Tentei algo semelhante, no entanto, quando arrasto o arquivo de script sobre o Chrome, ele é aberto no navegador, exibindo o código-fonte em vez de instalar o script.
Rabarberski 26/08
Tente Ctrl + O para abrir o arquivo. E você tem certeza que o nomeou como: google.user.js?
Beniamin
E eu li que a janela do cromo precisa ser maximizada.
Beniamin
Ou instale uma extensão semelhante ao greasemonkey no chrome. Isso o ajudará a instalar scripts e os scripts greasemonkey devem funcionar. Por exemplo: chrome.google.com/webstore/detail/…
Beniamin
11
@Rabarberski, você terá que parar de usar o Google Instant.
Synetech
5

Tente usar a extensão do Chrome "Indireto" .

Ele remove esse rastreamento e redirecionamento dos resultados de pesquisa do Google. Suporta o uso do google por HTTP e HTTPS.

fkpwolf
fonte
3

Se você estiver usando o Firefox , terá sorte, pois a resposta a seguir se aplica a você. Se você estiver usando o Chrome, tem muito menos sorte, veja a parte inferior desta resposta.

O Greasemonkey dispara os scripts do usuário assim que o DOM é carregado , portanto, você não precisa implementar um ouvinte "pronto para DOM".

Você também está no Firefox, para poder usar alguns doces modernos: for...of, let.

Aqui está o script Greasemonkey resultante:

// ==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');
}

Graças ao fato de letnão haver declarações locais, você não precisa incluir o código acima em um IIFE .


Para os infelizes usuários do Chrome (Tampermonkey):

Os links não são encontrados no momento em que o script é executado, mesmo que document.readyState === 'complete'... como resultado, você precise implementar algum loop com timer.

Portanto, você acaba com:

// ==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');
    }

})();

Atualização em outubro de 2018:
devido a uma alteração de marcação na página do Google, é h3.rnecessário alterar para div.r.
Fui mais longe e substituí h3.r > apor #res .r > a(substitui "tag.class" por apenas ".class" e adicionei um pai como segurança, para que o seletor não seja muito genérico).

Gras Double
fonte
Pegar o texto do script do Firefox e anexar 'javascript:' no início e depois fazer um bookmarklet (a resposta de la bobobobo) funcionou muito bem para mim.
ojchase
0

O script de Benjamin funciona para mim se eu mudar o seletor para: li.g div.vsc h3.r a

Na verdade, esse script de usuário parece que faria o trabalho:

Google Tracking-B-Gone for Greasemonkey

Kai Carver
fonte
0

Acho esse scriptlet mais fácil de executar. Copie e arraste-o para a barra de favoritos e clique nele antes de clicar com o botão direito do mouse em qualquer um dos links de resultados de pesquisa.

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

Deus essas pessoas são satanás, mas eu atualizei o script que Beniamin deu, funciona a partir da data deste post. Usuário este truque para leve make página certeza foi carregado antes de descascar um elementos de seus eventos mousedown. É necessário usar o TamperMonkey para fazer isso funcionar.

// ==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
fonte