Goodvin ([info]goodvin) wrote,

Фокусы с Firefox

на Хабрахабре недавно опубликовали статью с многочисленными примерами про то, какие в 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 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

  • Post a new comment

    Error

    Your IP address will be recorded 

  • 0 comments
Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…