Цель практического занятия: Целью данного семинара является применение технологии WebSlice в Интернет-магазине, как примера использования микроформатов, а также создание ускорителя для поиска товаров в Интернет-магазине.
Файлы к практическому занятию Вы можете скачать здесь.
В приведенном в предыдущем практическом занятии шаблоне поискового расширения был один из опциональных тегов – ie:PreviewUrl. Он позволяет сделать предварительный просмотр результатов поиска в небольшом окне, которое отображает html-страницу с результатами поиска. Это возможно, так как на самом деле при загрузке в браузер поискового расширения оно превращается в акселератор.
Акселераторы (в дальнейшем – ускорители ) в Internet Explorer 8 – это команды контекстного меню, предоставляющие быстрый доступ к приложениям или веб-службам с какой-либо веб-страницы. Пользователи могут устанавливать ускорители из галереи дополнений Internet Explorer 8 или через любой веб-сайт, на котором они объявлены. Ускорители упрощают копирование информации с одной веб-страницы на другую.
Ускорители характеризуются следующими важными свойствами:
Ускорители позволяют осуществлять операции с данными на веб-странице. Можно выбрать несколько строк текста и, щелкнув кнопкой мыши, отправить их в блог или послать по электронной почте. С использованием ранее установленного ускорителя эта операция "выполняет" требуемое действие, переходя к нужному веб-сайту с выбранной частью статьи, уже доступной в поле редактирования. С использованием ускорителей типа "предварительный просмотр" можно выполнять операции с данными без перехода на другой веб-сайт; например, можно перевести слово или найти адрес на карте. Чтобы открыть окно предварительного просмотра, достаточно навести указатель мыши на ускоритель (рис. 22.1).
Ускорители являются декларативными. В них используется передача данных HTTP для обеспечения связи между браузером и веб-сайтом. XML- ускорители легко создавать, тестировать и развертывать для пользователей.
Ускорители группируются по функциям, поэтому пользователи могут быстро вызвать нужную задачу. В ходе установки ускорителя или в диалоговом окне "Надстройки" можно задать ускоритель по умолчанию для конкретной категории.
Существуют следующие категории ускорителей:
Отдельно стоит выделить категорию Share, куда принято относятся все ускорители, не попавшие ни в одну из указанных категорий.
<activity category="Share">
В общем, можно использовать и собственные категории. При этом принято придерживаться правила, что категория должна выражаться глаголом, который будет понятен пользователю и не связан с определенной торговой маркой или приложениями, которые могут использоваться в этой категории другими ускорителями с аналогичными функциональными возможностями. Кроме того, поскольку значение атрибута category используется в диалоговом окне "Надстройки" для объединения ускорителей в группы, оно должно быть удобочитаемым и в нем должны правильно использоваться заглавные буквы.
Свойства документа и содержимое передаются поставщику службы ускорителя через функции HTTP-передачи данных GET и/или POST. Эти свойства выражены заменяемыми переменными, которые можно передавать в виде полей формы или параметров URL-адреса. Переменные можно указать непосредственно в атрибуте action элементов execute и preview или в элементах parameters.
Доступны переменные, перечисленные в табл. 22.1.
Переменная | Контекст | Описание |
---|---|---|
{documentUrl} | Все | Свойство href документа. |
{documentTitle} | Все | Свойство title документа, если доступно. |
{documentDomain} | Все | Действующий домен второго уровня из свойства href документа. |
{documentHost} | Все | Полное имя домена из свойства href документа. |
{selection} | Выделение | Выбранный текст. |
{link} | Ссылка | Свойство href выбранной ссылки. |
{linkText} | Ссылка | Свойство innerText выбранной ссылки. |
{linkRel} | Ссылка | Свойство rel выбранной ссылки, если доступно. |
{linkType} | Ссылка | Свойство type выбранной ссылки, если доступно. |
{linkDomain} | Ссылка | Действующий домен второго уровня из свойства href ссылки. |
{linkHost} | Ссылка | Полное имя домена из свойства href ссылки. |
О переменных необходимо помнить следующее:
В общем, описание акселератора имеет следующий вид:
<?xml version="1.0" encoding="UTF-8"?> <openServiceDescription xmlns="http://www.microsoft.com/schemas/openservicedescription/1.0"> <homepageUrl>http://maps.example.com</homepageUrl> <display> <name> Карта MyMap</os:name> <icon> http://www.example.com/favicon.ico</ icon> <description>Адреса на карте – с помощью MyMap.</description> </ display> < activity category="Карта"> <activityAction context="selection"> <preview action="http://maps.example.com/preview.php?addr={selection}" /> <execute action="http://maps.example.com/" method="get"> <parameter name="addr" value="{selection}" type="text" /> </execute> </activityAction> </activity> </openServiceDescription>
Рассмотрим подробно все используемые теги.
<openServiceDescription xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">
Корневой элемент файла ускорителя OpenService – элемент openServiceDescription. Атрибут xmlns является обязательным и должен иметь значение http://www.microsoft.com/schemas/openservicedescription/1.0.
<homepageUrl>http://maps.example.com</homepageUrl>
Обязательный. Элемент homepageUrl определяет основной URL-адрес ускорителя, по которому пользователь может получить доступ к службе из веб-браузера. Во всех URL-адресах, указанных в файле ускорителя OpenService, домен должен совпадать с доменом, указанным в элементе homepageUrl.
<display>
Обязательный. Элемент display описывает способ отображения ускорителя для пользователя. Он содержит элементы name и icon.
<name>Карта MyMap</name>
Обязательный. Элемент name – это имя ускорителя, отображаемое в контекстном меню. Имя ускорителя должно начинаться с описательного слова, за которым должно следовать наименование поставщика услуг. Например, "Карты Windows Live" или "Найти в Encarta".
<icon>http://www.example.com/favicon.ico</icon>
Необязательный. Элемент icon содержит URL-адрес для значка (размером 16 x 16 пикселей) данного ускорителя. Имя домена должно совпадать с доменом, указанным в элементе homepageUrl.
<description>Адреса на карте – с помощью MyMap.</description>
Необязательный. Элемент description содержит более длинное описание ускорителя, отображаемое в диалоговом окне Управление надстройками.
<activity category="Карта">
Обязательный. Элемент activity содержит всю функциональность ускорителя.
Каждый элемент activity должен указывать атрибут категории для описания поддерживаемого типа функциональности. Ускорители упорядочиваются в контекстном меню браузеров по категориям, чтобы пользователи могли быстро выполнить нужную задачу. Пользователи могут выбрать ускоритель по умолчанию для каждой категории при установке ускорителя или в диалоговом окне Управление надстройками. Ускорители по умолчанию отображаются в контекстном меню браузера, а все прочие ускорители – во вложенном меню.
<activityAction context="selection">
Обязательный. Каждый элемент activityAction указывает ход взаимодействия с поставщиком службы на основе целевого объекта ускорителя (табл. 22.2). Необязательный атрибут контекста указывает целевой объект. Значение по умолчанию – selection.
<preview action="http://maps.example.com/preview.php?addr={selection}" />
Необязательный. Элемент preview определяет содержимое окна HTML, которое отображается при наведении пользователем указателя мыши на ускоритель. Этот элемент использует те же атрибуты и дочерние элементы, что и элемент execute.
URL-адрес атрибута действия может содержать переменные, заменяемые при выполнении команд.
<execute action="http://maps.example.com/" method="get">
Обязательный. Элемент execute указывает основное действие, выполняемое при запуске ускорителя пользователем. Как и preview, этот элемент может содержать переменные замены в атрибуте действия или в виде отдельных элементов parameter.
Следующие атрибуты определены для execute и preview (табл. 22.3).
Атрибут | Обязательный | Описание |
---|---|---|
action | Да | Шаблон URL-адреса для использования при отправке HTTP. |
method | Нет | Тип используемого метода HTTP ( get, post ). По умолчанию – get. |
enctype | Нет | Тип содержимого, отправляемого на сервер. По умолчанию – application/x-www-form-urlencoded. |
accept-charset | Нет | По умолчанию – utf-8. |
<parameter name="addr" value="{selection}" type="text" />
Необязательный. Элемент parameter предоставляет дополнительный способ выражения значений. Обязательные атрибуты имени и значения определяют строчные выходные данные, относящиеся к службе, и обычно относятся к переменным ускорителя.
Необязательный атрибут типа используется для преобразования переменной {selection} в HTML или простой текст. Значение по умолчанию – text.