Chrome'da Google arama sonucu bağlantısı yönlendirmesini (sağ tıklatarak) nasıl devre dışı bırakılır?


22

Google’a giriş yaptığında, Google arama sonuçları yönlendirilir (izleme amacıyla vb.). URL'yi siteyi ziyaret etmeden kopyalamak / yapıştırmak kolay değil çünkü bu can sıkıcı bir durum. Yönlendirme olmazsa, arama sonuçlarında bağlantıya sağ tıklayın ve "Bağlantı adresini kopyala" yı seçtim. Şimdi sağ tıklamayı izleyen bazı Google JavaScript kodlarıyla değiştiriliyor.

Bu Chrome'da nasıl devre dışı bırakılabilir? Sanırım bunun için bir Chrome eklentisi vardı, ancak artık çalışmıyor gibi görünüyor.


Sağ tıklamanızın amacı nedir?
Beniamin

4
@Beniamin: soruma söylediğim gibi: "URL'yi kopyala [yapıştır]. Sadece URL’yi almak istiyorum (örneğin, bir rapora yapıştırmak için vs.)
Rabarberski

4
Bilginize: Sadece imleci kullanarak metni seçmek ve ctrl-c tuşlarına basmak her zaman bir seçenek değildir, çünkü google uzun URL'leri birleştirir
Rabarberski

Tamam. Ancak bağlantıya sağ tıkladığınızda, google izleme bağlantısına dönüşür. Böylece, sayfayı açmadığınız sürece bu bağlantıyı alamayacaksınız, google sizi istediğiniz sayfaya yönlendirecek ve istediğinize sahip olacaksınız.
Beniamin

2
Soru tam olarak bundan nasıl kaçınacağımızla ilgili. (daha önce bir miktar krom uzantısı vardı (artık çalışmıyor) ve firefox için greasemonkey betiği vardı, ama son kontrol ettiğimde bazı problemlerim olduğunu kontrol ettim. Yani "sayfayı açmadan bu bağlantıyı alamayacaksın" diyerek) mantıklı değil).
Rabarberski

Yanıtlar:


7

Şimdi ne istediğini öğrendiğimde, onmousedownözelliği bağlantıdan silen küçük bir senaryo yazdım .

İşte burada:

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

.User.js ile biten bir dosya olarak kaydedin ve Google Chrome'a ​​bırakın ve yardımcı olup olmadığını bildirin.

PS. İngilizce konuşulan dilim değil, sizi yanlış anladığım için üzgünüm.

Düzenleme: Fazladan bir mantık ekledim, bu yüzden Google Anında Arama ile çalışması gerekiyor. Bana işe yarayıp yaramadığını söyle.

Düzenleme: Google Anında Arama desteği olmadan "sürümüne" geri döndüm.


Çaba için teşekkürler. Benzer bir şey denedim, ancak komut dosyasını Chrome'un üzerine sürüklediğimde, tarayıcıda açılır ve komut dosyasını yüklemek yerine kaynak kodunu görüntüler.
Rabarberski

Dosyayı açmak için Ctrl + O tuşlarını kullanın. Ve google.user.js gibi bir şey adlandırdığınızdan emin misiniz?
Beniamin

Ve krom penceresinin büyütülmesi gerektiğini okudum.
Beniamin

Veya greasemonkey benzeri bir uzantıyı krom olarak yükleyin. Komut dosyalarını yüklemenize yardımcı olur ve greasemonkey komut dosyalarının çalışması gerekir. Örneğin: chrome.google.com/webstore/detail/…
Beniamin

1
@Rabarberski, o zaman Google Anında Arama'yı kullanmaktan vazgeçmelisin.
Synetech


3

Firefox kullanıyorsanız , aşağıdaki cevap sizin için geçerli olduğu için şanslısınız. Chrome kullanıyorsanız, çok daha az şanslısınız, bu cevabın alt kısmına bakın.

Greasemonkey , DOM yüklendikten sonra kullanıcı komut dosyalarını tetikler , böylece bir "DOM hazır" dinleyicisini uygulamanıza gerek kalmaz.

Ayrıca Firefox üzerinde, bu yüzden bazı modern şeker kullanabilirsiniz: for...of, let.

İşte sonuç Greasemonkey betiği:

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

Sayesinde letbu nedenle bir in yukarıdaki kodu içine gerekmez, hiçbir yerel bildirimi olmadığı hayatım .


Talihsiz Chrome (Tampermonkey) kullanıcıları için:

Betiğin yürütüldüğü sırada bağlantılar bulunmaz, buna rağmen document.readyState === 'complete'… sonuç olarak zamanlayıcı ile bir döngü uygulamanız gerekir.

Bu nedenle, sonunda:

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

})();

Ekim 2018 Güncellemesi:
Google sayfasındaki bir işaretleme değişikliği nedeniyle, h3.rdeğiştirilmesi gerekiyor div.r.
Ben öteye gitti ve yerine h3.r > abirlikte #res .r > a(sadece ".class" ile değiştirilir "tag.class" ve seçici çok genel olmaması böylece bir güvenlik olarak bir üst eklendi).


Firefox betiğinin metnini almak ve onun başına 'javascript:' eklemek ve ardından bir kitapçık hazırlamak (bir la bobobobo'nun cevabı) benim için çok işe yaradı.
ojchase


0

Çalıştırılması en kolay olan bu scriptlet buluyorum. Yer imleri çubuğunuza kopyalayıp sürükleyin ve arama sonucu bağlantılarından herhangi birini sağ tıklatmadan önce tıklayın .

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

Tanrım bu insanlar şeytan ama Benamin'in yazdığı betiği güncelledim, bu yazı tarihinden itibaren çalışır. Bu numarayı hafif kullanıcı olarak kullanarak, sayfanın yüklendiği olayların öğelerini soymadan önce yüklediğinden emin olun. Bu işi yapmak için TamperMonkey kullanmalısınız .

// ==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 );
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.