Открываем в опере картинки из поиска гугла без промежуточной страницы
Я часто пользуюсь поиском гугла по картинкам и меня очень бесит, что приходится открывать промежуточную страницу. Вздохнув, написал user.js который решает эту проблему и сохраняет возможность открыть промежуточную страницу.
Единственное ограничение скрипта в том, что он работает только после полной загрузки страницы и на медленном интернете может не сразу отработать, но тогда достаточно остановить загрузку страницы.
Для открытия рисунка напрямую теперь надо жать на сам рисунок, а для открытия промежуточной страницы — на ссылку под размером картинки (кстати: как только цвет доменов изменится, значит скрипт отработал и заменил <cite> на <a>).
Скрипт надо скачать и сохранить в дирректорию, в которой у вас хранятся пользовательские скрипты: opera:config#UserPrefs|UserJavascriptFile
Внимание: Код ниже представлен для ознакомления и он не будет работать должным образом: хабрапарсер все поломал (==Userscript== должен быть в camel-size и без пробела):
Upd#1: homm подсказал, что надо бы сделать проверку на адрес сайта прямо в скрипте.
Upd#2: oRb подсказал, что хорошо бы выполнять скрипт не после загрузки страницы, а после загрузки dom'a (очень, очень хороший совет).
Upd#3: Octane написал аналог под лису.
homm поднял тему кроссбраузерных пользовательских скриптов.
Единственное ограничение скрипта в том, что он работает только после полной загрузки страницы и на медленном интернете может не сразу отработать, но тогда достаточно остановить загрузку страницы.
Для открытия рисунка напрямую теперь надо жать на сам рисунок, а для открытия промежуточной страницы — на ссылку под размером картинки (кстати: как только цвет доменов изменится, значит скрипт отработал и заменил <cite> на <a>).
Скрипт надо скачать и сохранить в дирректорию, в которой у вас хранятся пользовательские скрипты: opera:config#UserPrefs|UserJavascriptFile
Внимание: Код ниже представлен для ознакомления и он не будет работать должным образом: хабрапарсер все поломал (==Userscript== должен быть в camel-size и без пробела):
- // ==User Script==
- // @name Direct images url on images.google.*
- // @description Удаляет промежуточную страницу с поиска картинок от гугла
- // @author spambox@hshhhhh.name
- // @include images.google.*
- // ==/User Script==
-
- function ImagesGooleComReplaceUrlFromSiteToImage()
- {
- /* выбираю все ссылки */
- var allHrefsNodes = document.getElementsByTagName("a");
- /* Блок в котором лежит нужный нам site */
- var currentCiteContainerNode;
- /* Подпись к картинке */
- var currentCiteNode;
- /* Ссылка вместо подписи */
- var newHref;
- /* Цифровая часть из id картинки */
- var Id = 0;
- /* Урл текущей ссылки */
- var Url;
- /* Рега для выборки ссылки на превьюшку */
- var regexpImgUrl = new RegExp('.*imgurl=(.*)&imgrefurl.*','g');
-
- for (var i = 0; i < allHrefsNodes.length; i++)
- {
- /* Урл текущей ссылки */
- Url = allHrefsNodes[i].href;
-
- /* Это ссылка на превью! */
- if (Url.match(regexpImgUrl))
- {
- /* Извлекаю цифровую часть из id */
- Id = allHrefsNodes[i].parentNode.id;
- Id = Id.match(/\d{1,4}/);
-
- if (Id !== null)
- {
- /* Нахожу подпись под картинкой */
- currentCiteContainerNode = document.getElementById('tDataText' + Id).lastChild.lastChild;
- /* Подпись под текущей картинкой */
- currentCiteNode = currentCiteContainerNode.lastChild;
-
- /* Создаю ссылку для замены ей подписи */
- newHref = document.createElement('a');
- newHref.setAttribute('href', allHrefsNodes[i].href);
- newHref.setAttribute('target', '_blank');
- newHref.setAttribute('style', 'text-decoration: none;');
- newHref.text = currentCiteNode.text;
- currentCiteContainerNode.appendChild(newHref);
-
- /* Удаляю <cite>, чтобы осталась одна ссылка */
- currentCiteNode.parentNode.removeChild(currentCiteNode);
- /* Меняю ссылку на превью со страницы с фреймов на прямую ссылку на картинку */
- allHrefsNodes[i].href = Url.replace(regexpImgUrl, "$1");
- }
- }
- }
- }
- document.addEventListener('DOMContentLoaded', ImagesGooleComReplaceUrlFromSiteToImage, false);
* This source code was highlighted with Source Code Highlighter.Upd#1: homm подсказал, что надо бы сделать проверку на адрес сайта прямо в скрипте.
Upd#2: oRb подсказал, что хорошо бы выполнять скрипт не после загрузки страницы, а после загрузки dom'a (очень, очень хороший совет).
Upd#3: Octane написал аналог под лису.
homm поднял тему кроссбраузерных пользовательских скриптов.



комментарии (51)