Полезная информация

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

№123-10-2011 03:58:12

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 7.0

Remove fake links

Remove fake links 0.1.9 (2012-10-16)

Автор: Infocatcher
Описание: удаляет перенаправляющие ссылки на Google и Yandex.

Например, при нажатии мыши ссылки в результатах поиска в Yandex заменяются на http://clck.yandex.ru/redir/... , а в Google – на http://www.google.ru/url?...

Установить: remove_fake_links.user.js

Код скрипта:

Выделить код

Код:

// ==UserScript==
// @name        Remove fake links
// @description Remove tracking redirects like http://www.google.com/url?... and http://clck.yandex.ru/redir/...
// @author      Infocatcher
// @version     0.1.9 - 2012-10-16
// @run-at      document-start
// @namespace   dev/null
// @include     http://www.google.*/search?*
// @include     https://www.google.*/search?*
// @include     http://www.google.*/webhp?*
// @include     https://www.google.*/webhp?*
// @include     http://www.google.*/#*q=*
// @include     https://www.google.*/#*q=*
// @include     http://www.google.*/imgres?*
// @include     https://www.google.*/imgres?*
// @include     http://groups.google.com/*
// @include     https://groups.google.com/*
// @include     http://yandex.*/yandsearch?*
// @include     https://yandex.*/yandsearch?*
// @include     http://market.yandex.ru/model.xml?*
// @include     https://market.yandex.ru/model.xml?*
// @grant       none
// ==/UserScript==

window.addEventListener("mousedown", function(e) {
    var exclude;
    // Uncomment following to leave "Warning - visiting this web site may harm your computer!"
    //exclude = /^https?:\/\/(?:www\.)google\.[\w.]+\/interstitial\?url=http\S+$/;
    for(var a = e.target; a && a.localName; a = a.parentNode) {
        if(a.localName.toLowerCase() == "a" && a.href) {
            if(a.hasAttribute("onmousedown")) {
                a.setAttribute("__deleted__onmousedown", a.getAttribute("onmousedown"));
                a.removeAttribute("onmousedown");
            }
            if(a.hasAttribute("onclick")) {
                var onclick = a.getAttribute("onclick");
                if(/(^|\W)location\.replace\(/.test(onclick)) {
                    a.setAttribute("__deleted__onclick", onclick);
                    a.removeAttribute("onclick");
                }
            }
            if(exclude && exclude.test(a.href))
                break;
            else if(/^https?:\/\/(?:\w+\.)?google\.[\w.]+\/.*=(https?:\/\/[^&?]*)/.test(a.href)) {
                var h = RegExp.$1;
                if(!/^https?:\/\/(?:\w+\.)?google\.[\w.]+\/(search|imgres)\?/.test(a.href))
                    a.href = decodeURIComponent(h);
            }
            else if(/^https?:\/\/clck\.yandex\.\w+\/redir\/.*?\*(https?:\/\/.*)$/.test(a.href))
                a.href = RegExp.$1;
            break;
        }
    }
}, true);


Разрабатываемая версия (будьте осторожны!)

Отредактировано Infocatcher (19-04-2013 22:45:55)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№207-09-2012 15:32:15

_iD
Участник
 
Группа: Members
Зарегистрирован: 07-09-2012
Сообщений: 8
UA: Firefox 15.0

Re: Remove fake links

У меня вот тут ссылки на результаты не обрабатываются скриптом, потому что URL имеет вид google.*/webhp? вместо google.*/search?

Отредактировано _iD (07-09-2012 15:33:59)

Отсутствует

 

№307-09-2012 15:51:04

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 15.0

Re: Remove fake links

_iD пишет

потому что URL имеет вид google.*/webhp? вместо google.*/search?

Угу. Добавил

Выделить код

Код:

// @include     http://www.google.*/webhp?*
// @include     https://www.google.*/webhp?*

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№407-09-2012 15:59:24

_iD
Участник
 
Группа: Members
Зарегистрирован: 07-09-2012
Сообщений: 8
UA: Firefox 15.0

Re: Remove fake links

Спасибо. А расширение Паланта я посмотрел - оно на той странице правильно срабатывает. Полез смотреть код, т.к. думал, что это дополнение - обёрнутый в джетпак юзерскрипт, а код там совсем не как у юзерскриптов, так что понять разницу в работе этого скрипта и джетпака от Паланта - мне не удалось.

Отредактировано _iD (07-09-2012 17:41:09)

Отсутствует

 

№516-12-2012 00:05:41

Почемучкин
Участник
 
Группа: Members
Зарегистрирован: 22-05-2011
Сообщений: 70
UA: Firefox 15.0

Re: Remove fake links

Есть еще
https://encrypted.google.com/*
(без всяких search? и webhp?)

https://encrypted.google.com/

И для него RegExp нужно переписать - недостаточно просто добавить @include
Кроме того, imho, может быть ситуация
http://google.*/
то есть без www.

И .test со странностями работает в отличие от .search

Отредактировано Почемучкин (16-12-2012 00:10:26)

Отсутствует

 

№616-12-2012 00:40:55

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 17.0

Re: Remove fake links

Почемучкин пишет

без всяких search?

Если отключить скрипты, будет https://encrypted.google.com/search?...

Добавил
Только там экспериментальная версия, обрабатывающая дополнительно "mouseover" и "focus" (то есть при наведении курсора в строке состояния будет показана уже очищенная ссылка, и можно открывать ссылки с клавиатуры).

Почемучкин пишет

И для него RegExp нужно переписать

Эээ... А что конкретно не так?

Почемучкин пишет

http://google.*/
то есть без www.

У меня  всегда перенаправляет на www.

Почемучкин пишет

И .test со странностями работает в отличие от .search

Примеры?


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№717-01-2013 01:17:02

amin01
^_^
 
Группа: Members
Зарегистрирован: 26-10-2010
Сообщений: 932

Re: Remove fake links

Infocatcher, Это эти скрипты?

скрытый текст
Поиск в Гугле и Яндексе — если заглянуть в html-код страницы результатов поиска Гугла, то можно убедиться, что все найденные результаты являются не просто ссылками. Каждая ссылка результатов поиска содержит метод onmousedown, который заставляет браузер выполнить особые действия по щелчку на ссылке. В данном случае переход на нужную страницу происходит через редирект на адрес-посредник. То есть сначала браузер идёт на сервер Гугла, и только после захода туда происходит переход на нужную страницу. Переход осуществляется достаточно быстро, что незаметно на широком канале. А между тем, в Гугл попадает статистика с информацией, что ты искал и куда, в результате, пошёл. То же самое делает и Яндекс, и Яху, и многие другие поисковики. Противостоять этому можно, используя в браузере клиентские скрипты, которые приведут ссылки в правильный формат. Установи плагин к Фаерфоксу дополнение Greasemonkey и добавь в список скрипты зачистки ссылок для Гугла и Яндекса. Полный список приложений на donttrack.us. Это единственный способ борьбы. Даже если настроить поиск Гугла, чтобы тот не сохранял историю поиска, это ни к чему не приведёт. Однако ссылку можно открыть в новой вкладке, это минует onmousedown и не даст Гуглу узнать правду.

Отсутствует

 

№817-01-2013 13:39:16

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 18.0

Re: Remove fake links

amin01
Да, они самые.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№917-01-2013 17:44:02

Почемучкин
Участник
 
Группа: Members
Зарегистрирован: 22-05-2011
Сообщений: 70
UA: Firefox 15.0

Re: Remove fake links

Infocatcher
>> И .test со странностями работает в отличие от .search
> Примеры?

При проверке в цикле с помощью .test были глюки. Я не стал разбираться абсолютно до конца в чем дело было, вернувшись к проверенному .search, но похоже, что RegExp запоминал позицию и при следующем вызове .test мог что-то пропустить. С .search такого не случается никогда.

Отсутствует

 

№1017-01-2013 18:24:48

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 18.0

Re: Remove fake links

Почемучкин
А не надо использовать для проверки регулярные выражения с флагом g.

Выделить код

Код:

var s = "0123456789";
var r = /\d/;
var res = [];
for(var i = 0; i < 10; ++i)
    if(r.test(s))
        res.push(RegExp.lastMatch);
alert(res.join("\n"));

r = /\d/g;
res = [];
for(var i = 0; i < 10; ++i)
    if(r.test(s))
        res.push(RegExp.lastMatch);
alert(res.join("\n"));

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1117-01-2013 20:49:33

Почемучкин
Участник
 
Группа: Members
Зарегистрирован: 22-05-2011
Сообщений: 70
UA: Firefox 15.0

Re: Remove fake links

Infocatcher
Ясно. Я кажется припоминаю, что хотел использовать одни и те же RegExp для проверки и для замены подстроки. С .test это глючило, да, кажется именно из-за флага /g

Отсутствует

 

№1217-01-2013 21:02:40

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 18.0

Re: Remove fake links

Почемучкин
Ну, это скорее так и задумано, чем «глючило».
Можно вот так сделать:

Выделить код

Код:

var s = "0123456789";
var r = /\d/g;
var res = [];
for(var i = 0; i < 10; ++i) {
    r.lastIndex = 0;
    if(r.test(s))
        res.push(RegExp.lastMatch);
}
alert(res.join("\n"));

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1312-02-2015 06:03:18

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 38.0

Re: Remove fake links

Infocatcher
Здравствуйте.

Версия 0.2.0pre12 - 2015-01-19 в поиске на www.google.com также "очищает" кнопку логина в аккаунт:
screenshot%2525202015-02-12%252520002.png

и ссылки "перевести эту страницу":
screenshot%2525202015-02-12%252520004.png

И спасибо вам за скрипт.

(еще хотелка: нельзя ли добавить поддержку DuckDuckGo? Того что duckduckgo.com, а не duckduckgo.com/html/ (последний таким не балуется). Пример ссылки из результатов поиска:
https://duckduckgo.com/l/?kh=-1&uddg=http%3A%2F%2Fwww.test-search.com%2F)

Отсутствует

 

№1412-02-2015 11:31:57

AlexCondor
Участник
 
Группа: Members
Зарегистрирован: 21-07-2005
Сообщений: 64
UA: Firefox 35.0

Re: Remove fake links

Infocatcher
Спасибо вам за скрипт. Но вот попался мне скрипт Straight Google, там вроде ссылок по более, и есть youtube.com. Может стоило бы учесть их.

Отсутствует

 

№1512-02-2015 13:21:23

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 35.0

Re: Remove fake links

turbot пишет

в поиске на www.google.com также "очищает" кнопку логина в аккаунт
...
и ссылки "перевести эту страницу"

Подправил: https://github.com/Infocatcher/UserScri … 9b5f1f55fd

turbot пишет

(еще хотелка: нельзя ли добавить поддержку DuckDuckGo? Того что duckduckgo.com, а не duckduckgo.com/html/ (последний таким не балуется). Пример ссылки из результатов поиска:
https://duckduckgo.com/l/?kh=-1&uddg=http%3A%2F%2Fwww.test-search.com%2F)

Я посмотрю.

AlexCondor пишет

Но вот попался мне скрипт Straight Google, там вроде ссылок по более, и есть youtube.com. Может стоило бы учесть их.

Там много всего... лучше реальные примеры смотреть.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1615-02-2015 20:54:36

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 35.0

Re: Remove fake links

turbot пишет

(еще хотелка: нельзя ли добавить поддержку DuckDuckGo? Того что duckduckgo.com, а не duckduckgo.com/html/ (последний таким не балуется). Пример ссылки из результатов поиска:
https://duckduckgo.com/l/?kh=-1&uddg=http%3A%2F%2Fwww.test-search.com%2F)

Вроде, получилось, но пришлось порезать местный код, навешивающий редиректы: https://github.com/Infocatcher/UserScri … 7a91613ee2


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1715-02-2015 22:13:06

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 38.0

Re: Remove fake links

Infocatcher
Спасибо. Вроде все отлично работает.

Отсутствует

 

№1823-07-2015 05:00:43

Kon Diter
Участник
 
Группа: Members
Зарегистрирован: 23-07-2015
Сообщений: 5
UA: Firefox 39.0

Re: Remove fake links

Поправьте, пожалуйста, работу версии, находящейся в разработке, с яндексом. Если адрес начинается с www, то скрипт не подключается (https://www.yandex.ru/)

Отсутствует

 

№1923-07-2015 18:19:20

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 39.0

Re: Remove fake links

Kon Diter пишет

Поправьте, пожалуйста, работу версии, находящейся в разработке, с яндексом. Если адрес начинается с www, то скрипт не подключается (https://www.yandex.ru/)

Спасибо, подправил: https://github.com/Infocatcher/UserScri … 503a773872


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№2025-07-2015 00:30:28

soll
Участник
 
Группа: Members
Зарегистрирован: 18-03-2014
Сообщений: 114
UA: Firefox 28.0

Re: Remove fake links

Скажите, расширение https://addons.mozilla.org/ru/firefox/addon/clean-links/ выполняет ту же функцию, чем лучше пользоваться ?

Отсутствует

 

№2117-08-2015 23:33:12

Douglas
Участник
 
Группа: Members
Зарегистрирован: 04-02-2008
Сообщений: 82
UA: Firefox 32.0

Re: Remove fake links

Infocatcher
Подскажите пожалуйста, как можно скачать файл с гитхаба? Пробовал скачивать, переименовывать в .js и редактировать текстовым редактором (удалить лишнее в шапке и внизу). Так всё открывается с html-тегами. Три раза попробовал.. [firefox] так и не увидел ни строки..

Отсутствует

 

№2217-08-2015 23:45:00

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 43.0

Отсутствует

 

№2318-08-2015 00:36:16

Douglas
Участник
 
Группа: Members
Зарегистрирован: 04-02-2008
Сообщений: 82
UA: Firefox 32.0

Re: Remove fake links

turbot
Огромное спасибо!

Отсутствует

 

№2408-02-2016 16:32:08

ElFrio
Участник
 
Группа: Members
Зарегистрирован: 24-11-2011
Сообщений: 53
UA: Firefox 42.0

Re: Remove fake links

На 4pda ссылка для входа режется.

Отсутствует

 

№2509-02-2016 00:30:54

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 44.0

Re: Remove fake links

ElFrio пишет

На 4pda ссылка для входа режется.

Подправил, спасибо: https://github.com/Infocatcher/UserScri … 6c755d1a89


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]