Вопрос или проблема
Когда вы вошли в Google, результаты поиска Google переадресуются (для отслеживания и т. д.). Это раздражает, так как непросто скопировать/вставить URL, не посещая сайт. Если бы не было переадресации, я бы просто щелкнул правой кнопкой мыши на ссылку в результатах поиска и выбрал “Копировать адрес ссылки”. Сейчас это изменено каким-то кодом JavaScript от Google, который следит за щелчком правой кнопкой.
Как можно отключить это в Chrome? Я думаю, раньше была расширение для Chrome для этого, но, похоже, оно больше не работает.
Теперь, когда я понял, что вам нужно, я написал небольшой скрипт, который удаляет атрибут 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, дайте мне знать, помогло ли это.
P.S. Английский не мой родной язык, так что извините за недопонимание.
Редактировать: я добавил дополнительную логику, чтобы она работала с Google Instant. Скажите, работает ли это для вас.
Редактировать: я вернулся к версии “без” поддержки Google Instant.
Попробуйте использовать расширение для Chrome “Undirect”.
Он удаляет отслеживание и перенаправление из результатов поиска Google. Поддерживается использование Google по обоим протоколам HTTP и HTTPS.
Если вы используете Firefox, вам повезло, так как следующий ответ применим к вам. Если вы используете Chrome, вам менее повезло, см. внизу этого ответа.
Greasemonkey запускает пользовательские скрипты когда DOM загружен, поэтому вам не нужно реализовывать слушателя “DOM готов”.
Кроме того, вы на Firefox, так что можете использовать современные приемы: for...of
, let
.
Вот результирующий скрипт для Greasemonkey:
// ==UserScript==
// @name Remove Google redirects
// @namespace google
// @description Удаляет перенаправления из ссылок результатов поиска Google.
// @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 Удаляет перенаправления из ссылок результатов поиска Google.
// @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”, и добавил родитель как безопасность, чтобы селектор не был слишком общим).
Мне нравится ответ @bobobobo, но, к сожалению, он не сработал у меня на Chromium Edge.
Однако, следующее букмарклет отлично сработало:
javascript: const items = document.getElementsByTagName('a'); for (const i of items) { if ( i.onmousedown || i.getAttribute('data-ved') ) {i.removeAttribute("onmousedown");i.removeAttribute("data-ved")} }
Я также удаляю атрибут data-ved
, так как подозреваю, что он также используется для отслеживания.
Скрипт Бенджамина работает для меня, если я изменяю селектор на: li.g div.vsc h3.r a
Вообще, этот скрипт пользователя, похоже, справляется с задачей:
Я нахожу этот скриптлет простым для запуска. Скопируйте и перетащите его на панель закладок и нажмите на него перед щелчком правой кнопкой на любую из ссылок в результатах поиска.
javascript: var items = document.getElementsByTagName('a'); for( var i = 0 ; i < items.length; i++ ) if( items[i].className=='l' ) items[i].onmousedown = null ;
Боже, эти люди – сатана, но я обновил скрипт, который дал Бенджамин, работает на момент этой публикации. Пользователь этот трюк, чтобы облегченно убедиться, что страница загружена перед снятием с элементов “a” их событий mousedown. Нужно использовать TamperMonkey, чтобы это сработало.
// ==UserScript==
// @name Delete onmousedown
// @namespace google
// @version 0.1
// @description Позволяет вам щелкать правой кнопкой на ссылки в результатах поиска Google, не нарушая их.
// @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; } // мы сняли атрибуты url
items[i].onmousedown = null ;
}
}
if( succeeded ) clearInterval( tid ); // остановить вызов этой процедуры, когда мы добились успеха.
}, 100 );
Расширение в Chrome Web Store Don’t Track Me Google работает идеально для меня в Chromium Edge. Больше нет странностей с google.com при изменении URL при клике на него.
Расширение Google Ads Link Fixer:
Этот скрипт предназначен для решения проблемы с рекламными ссылками в поиске Google. Спонсорские ссылки часто включают механизм перенаправления через googleadservices.com, который может вызывать проблемы, когда блокировщики рекламы на основе DNS, такие как AdGuard, блокируют эти перенаправления.
Скрипт выполняет следующие действия:
Определяет теги на страницах поиска Google с атрибутом data-rw, который обычно помечает спонсорские ссылки. Извлекает настоящую ссылку из атрибута href этих тегов. Заменяет логику перенаправления, устанавливая href на настоящую ссылку, тем самым, обходя перенаправление через службы Google Ads. Убедитесь, что скрипт выполняется только один раз и только на страницах, пришедших с google.com, избегая ненужного выполнения. Это решение гарантирует, что пользователи могут кликать по спонсорских ссылкам и переходить напрямую к намеченной цели, без вмешательства заблокированных перенаправлений.
Чтобы установить:
- Создайте папку, например, GoogleAdsLinkFixer
- Создайте следующие 2 файла: manifest.json и content.js
manifest.json:
{
"manifest_version": 3,
"name": "Google Ads Link Fixer",
"version": "1.0",
"description": "Заменяет рекламные ссылки Google на прямые ссылки.",
"permissions": ["scripting"],
"host_permissions": ["https://www.google.com/*"],
"content_scripts": [
{
"matches": ["https://www.google.com/search*"],
"js": ["content.js"]
}
]
}
content.js:
// content.js
(function () {
'use strict';
function fixGoogleAdsLinks() {
// Ищем все <a> теги с атрибутом data-rw
document.querySelectorAll('a[data-rw]').forEach(link => {
const realLink = link.getAttribute('href'); // Настоящая ссылка
if (realLink) {
link.setAttribute('data-rw', ''); // Удалите перенаправление, чтобы избежать проблем
link.href = realLink; // Установите настоящую ссылку как href
}
});
}
// Проверьте, была ли страница переадресована из поиска Google
if (document.referrer && document.referrer.includes('google.com')) {
fixGoogleAdsLinks(); // Выполните функцию один раз
}
})();
- Откройте Chrome и перейдите по адресу chrome://extensions/.
- Включите Режим разработчика (в правом верхнем углу).
- Нажмите на “Загрузить распакованное” и выберите папку.
.
Ответ или решение
Для отключения перенаправления ссылок из результатов поиска Google в браузере Chrome, можно воспользоваться несколькими методами. Приведенные ниже инструкции помогут вам улучшить комфорт работы с Google поиском, исключив лишнее отслеживание и упростив процесс копирования ссылок.
1. Использование скриптов
Одним из способов решения проблемы является использование пользовательских скриптов, которые удаляют атрибут onmousedown
или другие атрибуты из ссылок на странице результатов поиска. Вот пример такого скрипта для Tampermonkey:
// ==UserScript==
// @name Удаление редиректов Google
// @namespace google
// @description Удаляет редиректы из ссылок результатов поиска Google.
// @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');
link.removeAttribute('data-ved');
}
})();
Для использования этого скрипта, установите расширение Tampermonkey в Chrome, создайте новый скрипт, вставьте в него данный код и сохраните.
2. Использование расширений
Существуют расширения для Chrome, которые автоматически удаляют редиректы. Примером является расширение Don’t Track Me Google. Оно автоматически убирает редиректы и улучшает приватность при использования Google.
3. Создание собственного расширения
Если хотите создать более целевое решение, можно создать собственное расширение для Chrome. Пример простого расширения, устраняющего проблему с Google Ads, представлен ниже:
Файл manifest.json:
{
"manifest_version": 3,
"name": "Google Ads Link Fixer",
"version": "1.0",
"description": "Заменяет рекламные ссылки Google на прямые ссылки.",
"permissions": ["scripting"],
"host_permissions": ["https://www.google.com/*"],
"content_scripts": [
{
"matches": ["https://www.google.com/search*"],
"js": ["content.js"]
}
]
}
Файл content.js:
(function () {
'use strict';
function fixGoogleAdsLinks() {
document.querySelectorAll('a[data-rw]').forEach(link => {
const realLink = link.getAttribute('href');
if (realLink) {
link.setAttribute('data-rw', '');
link.href = realLink;
}
});
}
if (document.referrer && document.referrer.includes('google.com')) {
fixGoogleAdsLinks();
}
})();
Чтобы установить это расширение, зайдите в chrome://extensions/
, включите режим разработчика, нажмите "Загрузить распакованное" и выберите папку с созданными файлами.
Заключение
Технические навыки позволяют реализовать различные стратегические подходы к решению задачи по отключению редиректов в Google поиске. Выбор конкретного метода зависит от ваших предпочтений и уровня комфорта с программированием или использованием расширений.