Фокус первый. Лично мне надоел Яндекс как поисковая система -- в большинстве случаев результаты поиска замусорены оптимизаторским спамом и дорвеями. Зато очень нравится Нигма, тем более, что от них мне скоро придёт бесплатная книжка :) Но пальцы всё помнят, и, получив от мозга команду "набрать адрес поисковика", пишут "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(3 7,115))
location.href='http://sustainer/?as signed=me&module=www';
else
location.href='http://sustainer/r eq%s';Стóит записать это в одну строчку, и по ключевому слову req будет открываться нужная страница, содержащая список запросов, относящихся к модулю "www" и назначенных на авторизированного в системе пользователя:
javascript:if('%s'==String.fromCharCode(37,115)) location.href='http://sustainer/?assigned=me&module=www';else location.href='http://sustainer/req%s';"Казалось бы, все удовлетворены. Но... нет в жизни совершенства! Следующая итерация:
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';
В одну строчку:
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.
В следующей заметке описывается использование данной технологии для более удобного доступа к ЖЖ.
опубликовано на goodvin.pp.ru