Come disabilitare il reindirizzamento del link dei risultati di ricerca di Google (facendo clic con il tasto destro) in Chrome?


22

Quando si accede a Google, i risultati della ricerca di Google vengono reindirizzati (per scopi di monitoraggio ecc.). Questo è fastidioso, in quanto non è facile copiare / incollare l'URL senza visitare il sito. Se non ci fossero reindirizzamenti, farei semplicemente clic con il pulsante destro del mouse sul risultato nei risultati della ricerca e selezionerei "Copia indirizzo collegamento". Ora viene modificato da un codice JavaScript di Google che controlla il clic con il tasto destro.

Come può essere disabilitato su Chrome? Penso che ci fosse un'estensione di Chrome per questo, ma sembra non funzionare più.


Qual è lo scopo del tasto destro del mouse?
Beniamin,

4
@Beniamin: come detto nella mia domanda: "copia [incolla] l'URL". Voglio solo ottenere l'URL (ad esempio per incollare in un rapporto ecc.)
Rabarberski,

4
FYI: Basta selezionare il testo con il cursore e premere ctrl-c non è sempre un'opzione, perché google concatena URL lunghi
Rabarberski,

Ok. Ma quando fai clic con il pulsante destro del mouse sul link, questo diventa un link di tracciamento di Google. Quindi non otterrai quel link se non apri la pagina, Google ti reindirizzerà alla pagina desiderata e avrai ciò che desideri.
Beniamin,

2
La domanda è esattamente su come evitarlo. (prima c'era qualche estensione di Chrome (non funziona più) e alcuni script greasemonkey per firefox, ma l'ultima volta che ho verificato ho avuto qualche problema con quello. Quindi dicendo "non otterrai quel link se non apri la pagina" non ha senso).
Rabarberski,

Risposte:


7

Ora, quando so cosa volevi, ho scritto una piccola sceneggiatura che cancella l' onmousedownattributo dal link.

Ecco qui:

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

Salvalo come un file che termina con .user.js e rilascialo su Google Chrome e fammi sapere se ha aiutato.

PS. L'inglese non è la mia lingua parlata, quindi mi dispiace per averti frainteso.

Modifica: ho aggiunto ulteriore logica, quindi dovrebbe funzionare con Google Instant. Dimmi se funziona per te.

Modifica: sono tornato alla versione "senza" supporto di Google Instant.


Grazie per lo sforzo. Ho provato qualcosa di simile, tuttavia, quando trascino il file di script su Chrome, questo viene aperto nel browser, visualizzando il codice sorgente anziché installare lo script.
Rabarberski,

Prova Ctrl + O per aprire il file. E sei sicuro di averlo chiamato in questo modo: google.user.js?
Beniamin,

E ho letto che la finestra di Chrome deve essere ingrandita.
Beniamin,

Oppure installa un'estensione simile a greasemonkey in Chrome. Ti aiuterà a installare script e gli script greasemonkey dovrebbero funzionare. Ad esempio: chrome.google.com/webstore/detail/…
Beniamin,

1
@Rabarberski, allora dovrai smettere di usare Google Instant.
Synetech,


3

Se stai usando Firefox , sei fortunato perché la seguente risposta è valida per te. Se stai usando Chrome, sei molto meno fortunato, vedi il fondo di questa risposta.

Greasemonkey attiva gli script utente una volta caricato il DOM , quindi non è necessario implementare un listener "DOM ready".

Anche tu sei su Firefox, quindi puoi usare alcune caramelle moderne: for...of, let.

Ecco lo script Greasemonkey risultante:

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

Grazie a letnon ci sono dichiarazioni locali, quindi non è necessario racchiudere il codice sopra in un IIFE .


Per gli sfortunati utenti di Chrome (Tampermonkey):

I collegamenti non vengono trovati al momento dell'esecuzione dello script, anche se document.readyState === 'complete'... di conseguenza è necessario implementare alcuni loop con timer.

Pertanto, si finisce con:

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

})();

Aggiornamento ottobre 2018: a
causa di una modifica del markup nella pagina di Google, è h3.rnecessario modificarlo in div.r.
Sono andato più lontano e sostituito h3.r > acon #res .r > a(sostituito "tag.class" con solo ".class", e ho aggiunto un genitore come sicurezza in modo che il selettore non sia troppo generico).


Prendere il testo dello script di Firefox e aggiungere "javascript:" all'inizio, e poi crearne uno come bookmarklet (la risposta di un bobobobo) ha funzionato alla grande per me.
ojchase


0

Trovo questo scriptlet più semplice da eseguire. Copiarlo e trascinarlo nella barra dei segnalibri e fare clic prima di fare clic con il pulsante destro del mouse su uno dei collegamenti dei risultati della ricerca.

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

Dio, queste persone sono satana, ma ho aggiornato la sceneggiatura di Beniamin, funziona alla data di questo post. Usa questo accorgimento per leggere che la pagina sia caricata prima di eliminare alcuni elementi dai loro eventi di mouse. Deve usare TamperMonkey per farlo funzionare.

// ==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 );
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.