[ Content | View menu ]

фокусы с 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.
В следующей заметке описывается использование данной технологии для более удобного доступа к ЖЖ.

«
»

0 комментариев

Write a comment - TrackBack - RSS Comments

Write comment

Я не робот.