Bagaimana cara menonaktifkan pengalihan tautan hasil pencarian Google (klik kanan) di Chrome?

22

Saat masuk ke Google, hasil pencarian Google dialihkan (untuk tujuan pelacakan dll.). Ini menjengkelkan, karena tidak mudah untuk menyalin / menempel URL tanpa mengunjungi situs. Jika tidak ada pengalihan, saya cukup klik kanan tautan di hasil pencarian dan pilih "Salin alamat tautan". Sekarang diubah oleh beberapa kode Google JavaScript yang memantau klik kanan.

Bagaimana ini bisa dinonaktifkan di Chrome? Saya pikir dulu ada ekstensi Chrome untuk itu, tetapi tampaknya tidak berfungsi lagi.

Rabarberski
sumber
Apa tujuan dari klik kanan Anda?
Beniamin
4
@ Beneni: seperti yang dikatakan dalam pertanyaan saya: "salin [tempel] URL". Saya hanya ingin mendapatkan URL (misalnya untuk menempelkan dalam laporan dll.)
Rabarberski
4
FYI: Hanya memilih teks dengan kursor dan menekan ctrl-c tidak selalu menjadi pilihan, karena google menyatukan URL yang panjang
Rabarberski
Baik. Tetapi ketika Anda mengklik kanan pada tautan, itu berubah menjadi tautan pelacakan google. Jadi Anda tidak akan mendapatkan tautan itu kecuali Anda membuka halaman, google akan mengarahkan Anda ke halaman yang diinginkan dan Anda akan mendapatkan apa yang Anda inginkan.
Beniamin
2
Pertanyaannya adalah tepatnya bagaimana cara menghindarinya. (ada beberapa ekstensi chrome sebelumnya (tidak berfungsi lagi), dan beberapa script greasemonkey untuk firefox, tetapi terakhir kali saya memeriksa saya memiliki beberapa masalah dengan itu. Jadi mengatakan "Anda tidak akan mendapatkan tautan itu kecuali Anda membuka halaman" tidak masuk akal).
Rabarberski

Jawaban:

7

Sekarang ketika saya tahu apa yang Anda inginkan, saya menulis sebuah skrip kecil yang menghapus onmousedownatribut dari tautan.

Ini dia:

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

Simpan sebagai beberapa file yang diakhiri dengan .user.js dan letakkan di Google Chrome dan beri tahu saya jika itu membantu.

PS. Bahasa Inggris bukan bahasa yang saya pakai, maaf untuk kesalahpahaman Anda.

Sunting: Saya menambahkan logika ekstra sehingga harus bekerja dengan Google Instan. Katakan padaku jika itu berhasil untukmu.

Sunting: Saya kembali ke versi "tanpa" dukungan Google Instan.

Beniamin
sumber
Terima kasih atas usahanya. Saya mencoba sesuatu yang serupa, namun ketika saya seret file skrip ke Chrome, dibuka di browser, menampilkan kode sumber alih-alih menginstal skrip.
Rabarberski
Coba Ctrl + O untuk membuka file. Dan Anda yakin menamainya seperti: google.user.js?
Beniamin
Dan saya sudah membaca bahwa jendela chrome perlu dimaksimalkan.
Beniamin
Atau pasang beberapa ekstensi mirip greasemonkey di chrome. Ini akan membantu Anda menginstal skrip dan skrip greasemonkey harus bekerja. Misalnya: chrome.google.com/webstore/detail/…
Beniamin
1
@Rabarberski, maka Anda harus berhenti menggunakan Google Instan.
Synetech
5

Coba gunakan ekstensi Chrome "Tidak Langsung" .

Ini menghapus pelacakan dan pengalihan dari hasil pencarian google. Mendukung penggunaan google melalui HTTP dan HTTPS.

fkpwolf
sumber
3

Jika Anda menggunakan Firefox , Anda beruntung karena jawaban berikut berlaku untuk Anda. Jika Anda menggunakan Chrome, Anda kurang beruntung, lihat bagian bawah jawaban ini.

Greasemonkey memecat skrip pengguna setelah DOM dimuat , sehingga Anda tidak perlu menerapkan pendengar "siap DOM".

Anda juga menggunakan Firefox, sehingga Anda dapat menggunakan beberapa permen modern: for...of, let.

Berikut adalah skrip Greasemonkey yang dihasilkan:

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

Berkat lettidak ada deklarasi lokal, oleh karena itu Anda tidak perlu menyertakan kode di atas dalam IIFE .


Untuk pengguna Chrome (Tampermonkey) yang malang:

Tautan tidak ditemukan pada saat skrip dieksekusi, meskipun document.readyState === 'complete'... sebagai hasilnya Anda harus mengimplementasikan beberapa loop dengan timer.

Karena itu, Anda berakhir dengan:

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

})();

Pembaruan Oktober 2018:
Karena perubahan markup di halaman Google, h3.rperlu diubah ke div.r.
Saya pergi lebih jauh dan diganti h3.r > adengan #res .r > a(diganti "tag.class" dengan hanya ".class", dan menambahkan orangtua sebagai keamanan sehingga pemilih tidak terlalu generik).

Gras Double
sumber
Mengambil teks skrip Firefox, dan menambahkan 'javascript:' sebagai permulaan, dan kemudian membuat bookmarkletnya (jawaban ala bobobobo) bekerja sangat baik untuk saya.
ojchase
0

Script Benjamin bekerja untuk saya jika saya mengganti pemilih ke: li.g div.vsc h3.r a

Sebenarnya skrip pengguna ini sepertinya berfungsi:

Google Tracking-B-Gone for Greasemonkey

Kai Carver
sumber
0

Saya merasa scriptlet ini paling mudah dijalankan. Salin dan seret ke bilah bookmark Anda dan klik sebelum mengklik kanan pada salah satu tautan hasil pencarian.

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

Ya Tuhan, orang-orang ini adalah setan, tetapi saya memperbarui naskah yang diberikan Beniamin, bekerja pada tanggal posting ini. Gunakan trik ini untuk membuat ringan halaman pastikan telah dimuat sebelum menghapus elemen acara mousedown mereka. Harus menggunakan TamperMonkey untuk membuat ini berfungsi.

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