фокусы с Firefox: замена поисковой системы, расширение функциональности ключевых слов
Опубликовано 08.10.2007
на Хабрахабре опубликовали статью с многочисленными примерами про то, какие в FireFox’е и Опере есть прекрасные ключевые слова (рекомендуется ознакомиться со статьей перед тем, как читать дальше). Статья действительно очень и очень хорошая, поскольку наверняка сподвигнет не одну сотню читателей ХХ на дальнейшие исследования своих браузеров. Но там не упоминаются две немаловажные особенности, о которых и попробую сейчас рассказать.
Фокус первый. Лично мне надоел Яндекс как поисковая система — в большинстве случаев результаты поиска замусорены оптимизаторским спамом и дорвеями. Зато очень нравится Нигма, тем более, что от них мне скоро придёт бесплатная книжка :) Но пальцы всё помнят, и, получив от мозга команду «набрать адрес поисковика», пишут «ya.ru» и жмут enter. Чтобы написать «nigma.ru», надо приложить дополнительное мозговое усилие и послать пальцам команду «набрать nigma.ru».
Достаточно создать две закладки для адреса http://ajax.nigma.ru, назначить им ключевые слова «ya.ru» и «www.ya.ru» и вуаля! — яндекс открывается гораздо реже.
Используя тот же принцип, можно пошутить над соседом по работе — создать глубоко в меню закладку на какой-нибудь gay.ru и назначить этой закладке адрес его любимого сайта (auto.ru там или еще что-нибудь). Товарищ будет долго недоумевать :)
Фокус второй. Наши программисты написали систему работы с запросами, называется sustainer, работает через веб-интерфейс. Каждому CR (Change Request, запрос на изменение функциональности) назначается свой персональный номер и к нему можно обратиться по адресу http://sustainer/reqXXX. Можно просматривать списки запросов, отсортированные и отфильтрованные по разным параметрам — по ответственному за исполнение, приоритету, программному продукту, к которому может относиться запрос, и т.д. Думаю, подобная система используется во многих более-менее серьезных программистских фирмах. Это была преамбула :)
Теперь амбула. Для того, чтобы открыть реквест с известным номером, рядовой сотрудник, вооруженный до зубов Internet Explorer’ом, запустит этот недобраузер, ткнет на закладку «sustainer» (если он ещё не прописан в качестве домашней страницы), ткнёт на первый попавшийся реквест, ткнёт в строку адреса, сотрет всю строку после «http://sustainer/req» (при переходе на реквест по ссылке из списка передаётся куча параметров), при этом рискуя стереть лишнего, напишет нужные ему цифры и только после этого попадёт в свой реквест.
Естественным решением было бы сделать закладку на http://sustainer/req%s и попадать в реквесты, набирая в адресной строке req 123. И это действительно работало, но по прошествии какого-то времени у этого подхода обнаружился серьёзный недостаток: очень часто хочется просто написать req и попасть на главную страницу нашего сустейнера. А вместо этого открывается страница http://sustainer/req%s с сообщением о том, что реквест с таким номером отсутствует.
Правильное решение было найдено здесь. Оно базируется на двух китах:
1. в строке адреса можно использовать javascript :) Напишите в строке адреса: javascript:window.alert('Preved!'); и вы будете приятно удивлены. На этом же базируются многочисленные букмарклеты, гугл вам в помощь.
2. если указано ключевое слово, но не указан параметр, то %s и передаётся.
На основе вышеуказанных условий можно сформулировать техническое задание: если то, что написано после ключевого слова, совпадает с %s, то показать страницу по умолчанию (список запросов). Если не совпадает — конкретный запрос с прибавлением того, что написано.
Реализация этого ТЗ на javascript выглядит так:
javascript:if('%s'==String.fromCharCode(37,115))
location.href='http://sustainer/?assigned=me&module=www';
else
location.href='http://sustainer/req%s';
Стóит записать это в одну строчку, и по ключевому слову req будет открываться нужная страница, содержащая список запросов, относящихся к модулю «www» и назначенных на авторизированного в системе пользователя:
Казалось бы, все удовлетворены. Но… нет в жизни совершенства! Следующая итерация:
javascript:if('%s'==String.fromCharCode(37,115))
location.href='http://sustainer/?assigned=me&module=www';
else if ('%s'=='new')
location.href='http://sustainer/new';
else
location.href='http://sustainer/req%s';
В одну строчку:
Теперь, если ввести в строке адреса «req new», то откроется форма добавления нового запроса.
Расширять функциональность ключевых слов в сторону придания им сходства с командами можно бесконечно: в поле ввода адреса можно вписать мегабайты кода!
Думаю, основная идея понятна. Дальнейшие исследования можно проводить, отталкиваясь от этой заметки и от оригинальной статьи на kb.mozillazine.org
Update.
В следующей заметке описывается использование данной технологии для более удобного доступа к ЖЖ.