>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Скрипты http://forum.mozilla-russia.org/viewforum.php?id=37 >Remove fake links http://forum.mozilla-russia.org/viewtopic.php?id=52058 |
Infocatcher > 23-10-2011 03:58:12 |
Remove fake links 0.1.9 (2012-10-16) Автор: Infocatcher Например, при нажатии мыши ссылки в результатах поиска в 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); Разрабатываемая версия (будьте осторожны!) |
_iD > 07-09-2012 15:32:15 |
У меня вот тут ссылки на результаты не обрабатываются скриптом, потому что URL имеет вид google.*/webhp? вместо google.*/search? |
Infocatcher > 07-09-2012 15:51:04 |
_iD пишет
Угу. Добавил |
_iD > 07-09-2012 15:59:24 |
Спасибо. А расширение Паланта я посмотрел - оно на той странице правильно срабатывает. Полез смотреть код, т.к. думал, что это дополнение - обёрнутый в джетпак юзерскрипт, а код там совсем не как у юзерскриптов, так что понять разницу в работе этого скрипта и джетпака от Паланта - мне не удалось. |
Почемучкин > 16-12-2012 00:05:41 |
Есть еще И для него RegExp нужно переписать - недостаточно просто добавить @include И .test со странностями работает в отличие от .search |
Infocatcher > 16-12-2012 00:40:55 |
Почемучкин пишет
Если отключить скрипты, будет https://encrypted.google.com/search?... Добавил Почемучкин пишет
Эээ... А что конкретно не так? Почемучкин пишет
У меня всегда перенаправляет на www. Почемучкин пишет
Примеры? |
amin01 > 17-01-2013 01:17:02 |
Infocatcher, Это эти скрипты? скрытый текст Поиск в Гугле и Яндексе — если заглянуть в html-код страницы результатов поиска Гугла, то можно убедиться, что все найденные результаты являются не просто ссылками. Каждая ссылка результатов поиска содержит метод onmousedown, который заставляет браузер выполнить особые действия по щелчку на ссылке. В данном случае переход на нужную страницу происходит через редирект на адрес-посредник. То есть сначала браузер идёт на сервер Гугла, и только после захода туда происходит переход на нужную страницу. Переход осуществляется достаточно быстро, что незаметно на широком канале. А между тем, в Гугл попадает статистика с информацией, что ты искал и куда, в результате, пошёл. То же самое делает и Яндекс, и Яху, и многие другие поисковики. Противостоять этому можно, используя в браузере клиентские скрипты, которые приведут ссылки в правильный формат. Установи плагин к Фаерфоксу дополнение Greasemonkey и добавь в список скрипты зачистки ссылок для Гугла и Яндекса. Полный список приложений на donttrack.us. Это единственный способ борьбы. Даже если настроить поиск Гугла, чтобы тот не сохранял историю поиска, это ни к чему не приведёт. Однако ссылку можно открыть в новой вкладке, это минует onmousedown и не даст Гуглу узнать правду. |
Infocatcher > 17-01-2013 13:39:16 |
amin01 |
Почемучкин > 17-01-2013 17:44:02 |
Infocatcher При проверке в цикле с помощью .test были глюки. Я не стал разбираться абсолютно до конца в чем дело было, вернувшись к проверенному .search, но похоже, что RegExp запоминал позицию и при следующем вызове .test мог что-то пропустить. С .search такого не случается никогда. |
Infocatcher > 17-01-2013 18:24:48 |
Почемучкин Выделить код Код: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")); |
Почемучкин > 17-01-2013 20:49:33 |
Infocatcher |
Infocatcher > 17-01-2013 21:02:40 |
Почемучкин Выделить код Код: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")); |
turbot > 12-02-2015 06:03:18 |
Infocatcher Версия 0.2.0pre12 - 2015-01-19 в поиске на www.google.com также "очищает" кнопку логина в аккаунт: и ссылки "перевести эту страницу": И спасибо вам за скрипт. (еще хотелка: нельзя ли добавить поддержку DuckDuckGo? Того что duckduckgo.com, а не duckduckgo.com/html/ (последний таким не балуется). Пример ссылки из результатов поиска: |
AlexCondor > 12-02-2015 11:31:57 |
Infocatcher |
Infocatcher > 12-02-2015 13:21:23 |
turbot пишет
Подправил: https://github.com/Infocatcher/UserScri … 9b5f1f55fd turbot пишет
Я посмотрю. AlexCondor пишет
Там много всего... лучше реальные примеры смотреть. |
Infocatcher > 15-02-2015 20:54:36 |
turbot пишет
Вроде, получилось, но пришлось порезать местный код, навешивающий редиректы: https://github.com/Infocatcher/UserScri … 7a91613ee2 |
turbot > 15-02-2015 22:13:06 |
Infocatcher |
Kon Diter > 23-07-2015 05:00:43 |
Поправьте, пожалуйста, работу версии, находящейся в разработке, с яндексом. Если адрес начинается с www, то скрипт не подключается (https://www.yandex.ru/) |
Infocatcher > 23-07-2015 18:19:20 |
Kon Diter пишет
Спасибо, подправил: https://github.com/Infocatcher/UserScri … 503a773872 |
soll > 25-07-2015 00:30:28 |
Скажите, расширение https://addons.mozilla.org/ru/firefox/addon/clean-links/ выполняет ту же функцию, чем лучше пользоваться ? |
Douglas > 17-08-2015 23:33:12 |
Infocatcher |
turbot > 17-08-2015 23:45:00 |
Douglas > 18-08-2015 00:36:16 |
turbot |
ElFrio > 08-02-2016 16:32:08 |
На 4pda ссылка для входа режется. |
Infocatcher > 09-02-2016 00:30:54 |
ElFrio пишет
Подправил, спасибо: https://github.com/Infocatcher/UserScri … 6c755d1a89 |
Доктор ТуамОсес > 04-04-2016 21:35:50 |
Не очень понял: как им пользоваться? |
Douglas > 16-04-2016 15:21:58 |
А как обстоят дела с яндекс.маркетом? Там появились ссылки https://market-click2.yandex.ru/redir/* |
Infocatcher > 16-04-2016 18:30:53 |
Douglas Выделить код Код:https://market-click2.yandex.ru/redir/<буквоцифры>?data=<снова_буквоцифры>&b64e=1&sign=<тут_похоже_на_MD5>&keyno=1 Буквоцифры, впрочем, похожи на какую-то модификацию base 64. не помогает. Возможно, там еще шифруется как-то. |
yup > 18-04-2016 10:20:08 |
Infocatcher пишет
Наличие "b64e" в ссылке как бы намекает на base64. Но для base64 там неестественно большое (да ещё и непостоянное) соотношение длин кодированного и исходного URL - от 1,9 до 5,5. |
Baron_ > 03-10-2017 19:19:04 |
Перестал работать скрипт. Можно исправить? |
жрнжп > 16-07-2018 10:25:54 |
Infocatcher |
Йцукен > 20-12-2021 22:19:37 |
Большущее спасибо! Раньше я не пользовался скриптами, да и сейчас по привычке предпочитаю расширения, но после исчезновения Google Search Link Fix (от Владимира Паланта) я не нашёл полноценной замены ему среди расширений. Зато нашёл вот этот скрипт. Доволен как слон. |