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.


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.


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


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).


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

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 );
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.