20

При входе в Google результаты поиска Google перенаправляются (для целей отслеживания и т.д.). Это раздражает, так как нелегко скопировать / вставить URL, не посещая сайт. Если бы не было перенаправления, я бы просто щелкнул правой кнопкой мыши ссылку в результатах поиска и выбрал "Скопировать адрес ссылки". Теперь он изменен некоторым кодом JavaScript Google, который отслеживает щелчок правой кнопкой мыши.

Как это можно отключить в Chrome? Я думаю, что раньше было расширение Chrome для него, но, похоже, больше не работает.

5 ответов5

7

Теперь, когда я знаю, что вы хотели, я написал небольшой скрипт, который удаляет атрибут onmousedown из ссылки.

Вот:

// ==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, и поместите его в Google Chrome, и дайте мне знать, если это помогло.

PS. Английский не мой разговорный язык, поэтому извините за недопонимание вас.

Изменить: я добавил дополнительную логику, чтобы она работала с Google Instant. Скажи мне, если это работает для тебя.

Изменить: Я откатился до версии "без" поддержки Google Instant.

5

Попробуйте использовать расширение "Undirect" Chrome.

Он удаляет это отслеживание и перенаправление из результатов поиска Google. Поддерживает использование Google по HTTP и HTTPS.

1

Если вы используете Firefox, вам повезло, так как к вам относится следующий ответ. Если вы используете Chrome, вам гораздо меньше повезло, см. Нижнюю часть этого ответа.

Greasemonkey запускает пользовательские сценарии после загрузки DOM, поэтому вам не нужно реализовывать прослушиватель "DOM ready".

Также вы находитесь на Firefox, так что вы можете использовать некоторые современные конфеты: for...of, let.

Вот результирующий скрипт Greasemonkey:

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

Благодаря тому, что let не содержит локальных объявлений, вам не нужно заключать вышеуказанный код в IIFE.


Для несчастных пользователей Chrome (Tampermonkey):

Ссылки не найдены во время выполнения скрипта, даже если document.readyState === 'complete' ... в результате вы должны реализовать некоторый цикл с таймером.

Таким образом, вы в конечном итоге:

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

})();

Обновление октября 2018 года:
Из-за изменения разметки на странице Google, h3.r изменить на div.r
Я пошел дальше и заменил h3.r > a на #res .r > a (заменил «tag.class» просто на «.class» и добавил родителя в качестве обеспечения безопасности, чтобы селектор не был слишком универсальным).

0

Сценарий Бенджамина работает для меня, если я изменю селектор на: li.g div.vsc h3.r a

На самом деле этот пользовательский скрипт выглядит так, как будто он сделает эту работу:

Google Tracking-B-Gone для Greasemonkey

0

Я считаю, что этот скриптлет проще всего запустить. Скопируйте и перетащите его на панель закладок и щелкните по нему, прежде чем щелкнуть правой кнопкой мыши по любой из ссылок результатов поиска.

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

Боже, эти люди - сатана, но я обновил сценарий, который дал Бениамин, работает на дату этого поста. Используйте этот трюк, чтобы облегчить задачу, чтобы убедиться, что страница загружена перед удалением элементов их событий mousedown. Нужно использовать TamperMonkey, чтобы сделать эту работу.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .