Wie deaktiviere ich die Linkumleitung für Google-Suchergebnisse (bei Rechtsklick) in Chrome?

22

Wenn Sie bei Google angemeldet sind, werden die Suchergebnisse von Google weitergeleitet (für Tracking-Zwecke usw.). Dies ist ärgerlich, da es nicht einfach ist, die URL zu kopieren oder einzufügen, ohne die Site zu besuchen. Wenn es keine Weiterleitung geben würde, würde ich einfach mit der rechten Maustaste auf den Link in den Suchergebnissen klicken und "Linkadresse kopieren" auswählen. Jetzt wird es durch einen JavaScript-Code von Google geändert, der den Rechtsklick überwacht.

Wie kann dies in Chrome deaktiviert werden? Ich denke, es gab eine Chrome-Erweiterung dafür, aber sie scheint nicht mehr zu funktionieren.

Rabarberski
quelle
Was ist der Zweck Ihres Rechtsklicks?
Beniamin
4
@Beniamin: wie gesagt in meiner frage: "kopiere [füge] die URL ein". Ich möchte nur die URL erhalten (z. B. zum Einfügen in einen Bericht usw.)
Rabarberski
4
Zu Ihrer Information: Nur den Text mit dem Cursor auszuwählen und Strg-C zu drücken, ist nicht immer eine Option, da Google lange URLs verkettet
Rabarberski
Okay. Wenn Sie jedoch mit der rechten Maustaste auf den Link klicken, wird der Link zu Google Tracking. Sie erhalten diesen Link also erst, wenn Sie die Seite öffnen. Google leitet Sie dann zur gewünschten Seite weiter und Sie haben das, was Sie möchten.
Beniamin
2
Die Frage ist genau, wie man das vermeidet. (Es gab vorher einige Chrome-Erweiterungen (funktioniert nicht mehr) und ein Greasemonkey-Skript für Firefox, aber als ich das letzte Mal nachgesehen habe, hatte ich einige Probleme damit. Also sagte ich: "Diesen Link bekommst du nicht, wenn du die Seite nicht öffnest." macht keinen Sinn).
Rabarberski

Antworten:

7

Jetzt, wo ich weiß, was Sie wollten, habe ich ein kleines Skript geschrieben, das das onmousedownAttribut aus dem Link löscht .

Hier ist es:

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

Speichern Sie es als eine Datei, die mit .user.js endet, und legen Sie es in Google Chrome ab. Lassen Sie mich wissen, ob es geholfen hat.

PS. Englisch ist nicht meine gesprochene Sprache. Es tut mir leid, dass ich Sie falsch verstanden habe.

Bearbeiten: Ich habe zusätzliche Logik hinzugefügt, damit es mit Google Instant funktioniert. Sag mir, ob es bei dir funktioniert.

Bearbeiten: Ich habe auf die Version "ohne" Google Instant-Support zurückgesetzt.

Beniamin
quelle
Danke für die Mühe. Ich habe etwas Ähnliches versucht. Wenn ich die Skriptdatei über Chrome ziehe, wird sie im Browser geöffnet und zeigt den Quellcode an, anstatt das Skript zu installieren.
Rabarberski
Versuchen Sie, die Datei mit Strg + O zu öffnen. Und sind Sie sicher, dass Sie den Namen wie folgt eingegeben haben: google.user.js?
Beniamin
Und ich habe gelesen, dass Chromfenster maximiert werden müssen.
Beniamin
Oder installieren Sie eine greasemonkey-ähnliche Erweiterung in Chrom. Es wird Ihnen helfen, Skripte zu installieren, und Greasemonkey-Skripte sollten funktionieren. Beispiel: chrome.google.com/webstore/detail/…
Beniamin
1
@Rabarberski, dann müssen Sie Google Instant nicht mehr verwenden.
Synetech
5

Versuchen Sie, die Chrome-Erweiterung "Undirect" zu verwenden .

Diese Nachverfolgung und Weiterleitung wird aus den Google-Suchergebnissen entfernt. Unterstützt die Verwendung von Google über HTTP und HTTPS.

fkpwolf
quelle
3

Wenn Sie Firefox verwenden , haben Sie Glück, da die folgende Antwort auf Sie zutrifft. Wenn Sie Chrome verwenden, haben Sie weitaus weniger Glück. Weitere Informationen finden Sie am Ende dieser Antwort.

Greasemonkey löst die Benutzerskripte aus, sobald das DOM geladen ist , sodass Sie keinen Listener "DOM ready" implementieren müssen.

Du bist auch in Firefox, also kannst du ein paar moderne Süßigkeiten benutzen: for...of, let.

Hier ist das resultierende Greasemonkey-Skript:

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

Dank dem letes keine lokalen Erklärungen, daher müssen Sie nicht den obigen Code in einem müssen umschließen IIFE .


Für die unglücklichen Nutzer von Chrome (Tampermonkey):

Verknüpfungen werden zum Zeitpunkt der Ausführung des Skripts nicht gefunden, obwohl document.readyState === 'complete'... Sie daher eine Schleife mit Timer implementieren müssen.

Daher erhalten Sie am Ende Folgendes:

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

})();

Update Oktober 2018:
Aufgrund einer Markup-Änderung auf der Google-Seite musste die h3.rgeändert werden div.r.
Ich ging weiter und ersetzte h3.r > adurch #res .r > a(ersetzte "tag.class" durch ".class" und fügte ein übergeordnetes Element als Sicherheit hinzu, damit der Selektor nicht zu allgemein ist).

Gras Double
quelle
Der Text des Firefox-Skripts und das Anhängen von "Javascript:" an den Anfang des Skripts und das anschließende Erstellen eines Lesezeichens (die Antwort von a la bobobobo) funktionierten für mich hervorragend.
Ojchase
0

Benjamins Skript funktioniert für mich, wenn ich den Selektor ändere auf: li.g div.vsc h3.r a

Tatsächlich sieht dieses Benutzerskript so aus, als würde es den Job erledigen:

Google Tracking-B-Gone für Greasemonkey

Kai Carver
quelle
0

Ich finde dieses Scriptlet am einfachsten auszuführen. Kopieren und ziehen Sie es in Ihre Lesezeichenleiste und klicken Sie darauf, bevor Sie mit der rechten Maustaste auf einen der Suchergebnis-Links klicken.

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

Gott, diese Leute sind Satane, aber ich habe das Skript aktualisiert, das Beniamin gegeben hat und das ab dem Datum dieses Beitrags funktioniert. Verwenden Sie diesen Trick , um sicherzustellen, dass die Seite geladen wurde, bevor Sie Elemente ihrer Maus-Down-Ereignisse entfernen. Muss TamperMonkey verwenden , damit dies funktioniert.

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