ХайТекСити
Категории каталога
Игры [48]
Устройства [9]
Софт [23]
Гаджеты [10]
Технологии [19]
Моддинг [4]
Защита [6]
Наука и техника [10]
Мобильные устройства [26]
Система [17]
Связь [13]
HTML [16]
Интернет [30]
SSI [4]
XHTML [3]
Компьютерная периферия [6]
Хранение данных [3]
Корпуса [1]
Система охлаждения [1]
Разное [24]
Компьютерная жизнь [2]
Железо [65]
WEB-программирование [20]
Программирование [2]
2D графика [37]
3D графика [10]
Операционные системы [6]
Форма входа
Поиск
Статистика
Rambler's Top100

page counter
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Среда, 2025-07-30, 18:43:24
Приветствую Гость Гость | RSS
Главная | Регистрация | Вход
ХайТекСити
Главная » ХайТекСити » Интернет

Плагин FireFox своими руками

Открытость платформы и ее реализация для множества популярных операционных систем (включая Windows, Linux и Mac OS) дает практически любому желающему возможность создать свое собственное расширение для этого браузера.
создание плагина FireFoxНо перед тем как приступать к каким либо активным действиям, Вам будет весьма полезно разобраться, на чем базируется платформа разработки. Также необходимо знать или хотя бы иметь минимальное представление о таких языках и технологиях как XML, CSS, JavaScript и DTD. Вкратце рассмотрим те из них, которые понадобятся нам при разработке плагинов для FireFox.

XUL и CSS

Наиболее заметно философия Mozilla — «правильный инструмент для правильной работы» — проявляется в проектировании интерфейсов для приложений.
Для их создания используется подмножество языка XML, которое носит название XUL (произносится «зул») — XML User-interface Language. Обычно содержимое XUL хранится в файлах с таким же расширением и может быть загружено как из локального файла, так и из Сети.
Если говорить кратко, XUL позволяет создавать различные элементы интерфейса: кнопки, меню, списки, элементы ввода, панели инструментов — другими словами, все те стандартные элементы современных графических интерфейсов, которые мы уже привыкли видеть. Если же среди стандартного набора компонен тов вы не нашли нужный именно вам элемент или же возможности какого-либо из них кажутся вам недостаточными, ничто не мешает исправить эту ситуацию, воспользовавшись технологией XBL.
Кроме того, внешний вид (стиль) элементов интерфейса не ограничивается видом родных элементов интерфейса операционной системы, а может изменяться с помощью CSS. Так, изменив лишь стандартные стили оформления элементов браузера FireFox, можно практически полностью преобразить внешний вид FireFox — создать свою неповторимую тему.

JavaScript

Считается, что JavaScript является лучшим скриптовым языком и что набор предоставляемых им возможностей идеально подходит для работы с элементами интерфейса. Доступ к данным элементам осуществляется с помощью JavaScript-функции DOM, которая позволяет менять, удалять и создавать новые свойства элементов, добавлять новые элементы к интерфейсу, а также обрабатывать события и многое другое.
Для работы с файловой системой или базами данных, платформа разработки Mozilla, также имеет необходимые компоненты и библиотеки. Чтобы обеспечить высокую скорость работы, все они написаны на C++, а доступ к ним осуществляется с помощью JavaScript-интерфейса.

RDF

RDF (Resource Description Framework) — подмножество языка XML, который столь хорошо подходит для представления данных и описания веб-ресурсов.
Mozilla использует RDF для описания файлов в локальной файловой системе, списка закладок, адресной книги и других подобных вещей.

Плагин DocMark для FireFox

Попробуем создать свой собственный плагин FireFox (назовем его DocMark), цель плагина — дать возможность устанавливать закладки внутри HTML-документов и в дальнейшем перемещаться по ним. Подобный плагин может быть полезен, к примеру, при чтении различных объемных текстов (книг, документации), которые вы подолгу и с удовольствием изучаете. В плагине мы реализуем лишь базовые функции: добавление новой закладки, а также переход к уже существующей. Интерфейс плагина будет поддерживать два языка — русский и английский, — которые будут выбираться в зависимости от локали установленного браузера FireFox.
Итак, к сути. Любые плагины для Firefox распространяются в виде обычных ZIP-архивов — файлов с расширением XPI, которые распознаются браузером FireFox как установочные файлы и содержат следующие элементы: install.rdf с данными установки, а также каталог chrome с архивом docmark.jar.
Для начала создадим каталог с названием docmark_xpi (который в дальнейшем будет содержать все установочные файлы плагина) и в нем файл install.rdf со следующим содержимым (пример плагина FireFox). Рассмотрим некоторые объекты этого файла более подробно:

em:id
Содержит уникальный идентификатор расширения. Для генерации такой строки необходимо использовать утилиту guidgen (для Windows) или uuidgen (для Unix).

em:file
Содержит название архива плагина в формате URI urn:mozilla:extension:file:<имя файла>.jar и каталоги, в которых хранятся ресурсы плагина FireFox. em:package — путь к основным исходным файлам плагина FireFox, em:locale — путь к файлам локализации плагина FireFox.

em:targetApplication
Описывает приложение, в которое будет устанавливаться плагин. em:id — идентификатор Firefox; em:minVersion, em:maxVersion — минимальная и максимальная версии приложения.

Исходные тексты плагина FireFox

Создадим второй каталог с названием docmark_jar, который будет содержать исходные файлы нашего плагина FireFox.
Структура подкаталогов в нем получается достаточно сложная, поэтому покажем и опишем ее заранее:
docmark_jar
  ѕ content
    ѕ docmark
      ѕ about.xul
      ѕ contents.rdf
      ѕ docmark.js
      ѕ docmark.xul
  ѕ locale
    ѕ en-US
      ѕ docmark
        ѕ contents.rdf
        ѕ docmark.dtd
        ѕ docmark.properties
    ѕ ru-RU
      ѕ docmark
        ѕ contents.rdf
        ѕ docmark.dtd
        ѕ docmark.properties
Каталог «content» содержит специальный подкаталог, в котором хранятся файлы формата XUL и JavaScript. Файлы contents.rdf содержат информацию для браузера FireFox о том, где и какие файлы хранятся и используются. Каталог «locale» хранит перевод интерфейса на различные языки, в нашем случае — на английский и русский: docmark.dtd используется в файлах XUL, а docmark.properties — в JavaScript. Файл contents.rdf из каталога «content/docmark» выглядит следующим образом:
<?xml version=«1.0»?>
<RDF xmlns=«http://www.w3.org/1999/02/22-rdf-syntax-ns#» xmlns:chrome=«http://www.mozilla.org/rdf/chrome#»>
<Seq about=«urn:mozilla:package:root»>
<li resource=«urn:mozilla:package:docmark»/>
</Seq>
  <Seq about=«urn:mozilla:overlays»>
  <li resource=«chrome://browser/content/browser.xul»/>
  <li resource=«chrome://navigator/content/navigator.xul»/>
</Seq>
<Seq about=«chrome://browser/content/browser.xul»>
  <li>chrome://docmark/content/docmark.xul</li>
</Seq>
<Seq about=«chrome://navigator/content/navigator.xul»>
  <li>chrome://docmark/content/docmark.xul</li>
</Seq>
<Description about=«urn:mozilla:package:docmark»
  chrome:displayName=«DocMark 0.1»
  chrome:author=«Alexander Ermolaev»
  chrome:name=«docmark»
  chrome:extension=«true»
/>
</RDF>

Обратите ваше внимание на строку «chrome://browser/content/browser.xul». Она представляет собой ссылку на интерфейс браузера, к которому мы планируем подключать новый плагин.
Еще одна ссылка, «chrome://navigator/content/navigator.xul», используется для других браузеров на основе платформы Mozilla: Netscape и, собственно, самого браузера Mozilla.

Интерфейс плагина FireFox

Большая часть работы с нашим плагином будет осуществляться через основное меню браузера. Для добавления закладки мы будем использовать стандартное окно запроса на JavaScript, которое будет вызываться с помощью функции «prompt». Создадим файл docmark.xul со следующим содержанием (пример плагина FireFox).
Объект «overlay» говорит о том, что мы будем добавлять необходимые элементы интерфейса к интерфейсу браузера. Тег «keyset» задает набор горячих клавиш, с помощью которых можно вызывать соответствующие команды. Далее следует меню «menubar», атрибут «id» которого (со значением «main-menubar») говорит о том, что наше меню будет подключено к основному меню браузера. Если необходимо, вы можете подключить созданное меню к любому другому меню браузера, например к меню «Инструменты».
Для этого используйте «id=«menu_ToolsPopup»». Тег «menupopup» создает выпадающее меню, в которое мы будем добавлять наши закладки. Файл about.xul создает диалоговое окно, которое в дальнейшем будет вызываться по команде «docmark_about()». Содержимое файла может выглядеть примерно следующим образом:
<?xml version=«1.0»?>
<?xml-stylesheet href=«chrome://global/skin/» type=«text/css»?>
<!DOCTYPE overlay SYSTEM «chrome://docmark/locale/docmark.dtd»>
<dialog buttons=«accept» id=«docmarkaboutdialog» title=«&docmark.about;» xmlns=«http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul»>
<description>DocMark 0.1</description>
</dialog>

Локализация плагина FireFox

Обратите внимание на строки «&docmark.name;» — ссылки на переводы строк, которые находятся в локализационных файлах в формате DTD, подключаемых в приложение с помощью конструкции:
<!DOCTYPE overlay SYSTEM «chrome://docmark/locale/docmark.dtd»>
Файл русской локализации docmark.dtd выглядит следующим образом:
<!ENTITY docmark.name «DocMark»>
<!ENTITY docmark.add «Добавить закладку...»>
<!ENTITY docmark.about «О расширении»>
<!ENTITY docmark.name.key «D»>
<!ENTITY docmark.add.key «Д»>
<!ENTITY docmark.about.key «О»>
<!ENTITY docmark.mark.key «M»>

Файл docmark.properties нужен, чтобы иметь доступ к переводам из JavaScript. Он выглядит проще, чем docmark.dtd: строки состоят из ключа и его значения и разделяются знаком «=». Файл подключается в docmark.xul с помощью строки:
<stringbundle id=«docmark-string-bundle» src=«chrome://docmark/locale/docmark.properties»/>
Доступ к строкам может осуществляться с помощью нескольких функций:
«getString(key)» — получить простую строку по заданному ключу «key»;
«getFormattedString(key, array)» — получить строку, в которой заменяются вхождения «%S» на элементы из массива «array».
Содержимое файла docmark.properties выглядит следующим образом:
docmarkMarkTitle=Закладка номер %S
Осталось лишь написать файл contents.rdf (пример плагина FireFox).
По аналогии с приведенными выше файлами вы можете самостоятельно создать каталог «en-US» с английской локализацией, заменить все вхождения «ru-RU» на «en-US» и сделать переводы строк.

Исполняемый код плагина FireFox

Обработка действий пользователя и выполнение определенных команд заключены в программу на JavaScript. Содержимое файла docmark.js (пример плагина FireFox).

Сборка архива плагина FireFox

Теперь мы имеем все исходные файлы для сборки архива расширения. Воспользуйтесь ZIP-архиватором и создайте архив docmark.jar с содержимым каталога docmark_jar. Упаковку необходимо
проводить с включенной опцией сохранения пути к файлам архива.

Сборка установочного файла плагина FireFox

Создайте в каталоге docmark_xpi подкаталог chrome и скопируйте в него файл docmark.jar. Теперь точно так же упакуйте все содержимое каталога docmark_xpi в архив docmark.xpi.

Установка плагина FireFox

Откройте каталог с docmark.xpi в Firefox, найдите его в списке и щелкните по нему левой клавишей мыши. После этого запустится процедура установки плагина.
Как только операция будет завершена, потребуется перезагрузить браузер, после чего станет возможным использование созданного нами плагина.

 

Поздравляю, теперь Вы обладаете базовыми знаниями по созданию собственных плагинов для браузера FireFox.

Более подробную информацию о формате XUL и разработке приложений (плагинов) для FireFox Вы можете найти на здесь .



Источник: http://www.ironhorse.ru
Категория: Интернет | Добавил: KroX (2007-04-05) | Автор: Dan
Просмотров: 3781 | Комментарии: 26 | Рейтинг: 0.0/0 |

Всего комментариев: 111 2 »
11 Verygevekes  
0
Ищете лучшие электроды?
Компания Мегапром предлагает купить электроды для контактной сварки от лучших производителей на территории России.
Электроды обеспечивют высокие механические свойства сварного соединения и высокую производительность процесса сварки.
Вся продукция сертифицирована и имеет необходимые маркировки.

10 sleelowetelip  
0
Ищете, где купить тросы, трос натяжной?
Компания ООО Мегапром - крупный поставщик где купить трос от лучших производителей на территории России.
<p><b>Трос стальной</b> - основной грузонесущий элемент большинства грузоподъемных,
транспортных, дорожно-строительных, землеройных машин и механизмов,
которые являются одним из наиболее распространенных видов метизов и
находят широкое применение в самых различных отраслях промышленности:
угольной, горнорудной, нефте - газодобывающей и перерабатывающей,
транспортном и сельскохозяйственном машиностроении, строительной индустрии,
морском, речном транспорте и т. д.</p>
Вся продукция сертифицирована и имеет необходимые маркировки.
(4862)43-90-47,43-92-47, 43-92-48, 43-91-66

9 icellemiuccip  
0
Ищете, где купить тросы, купить трос?
Компания Мегапром предлагает трос сантехнический от лучших производителей на территории России.
Возможна резка отмотка. Вся продукция сертифицирована и имеет необходимые маркировки.
+7(4862)43-90-47, 43-92-47, 43-92-48, 43-91-66.

8 Grasteexcathe  
0
Компания ООО Мегапром предлагает купить электрод для ручной сварки от лучших производителей на территории России.
Сварочные электроды производства Северсталь метиз ОСПАЗ используются при сварке конструкций
из углеродистых, низколегированных и высоколегированных сталей, а также для сварки чугуна и наплавки
поверхностей с особыми свойствами. Вся продукция сертифицирована и имеет необходимые маркировки.

7 Munseffinue  
0
Привет!
Хочу приобрести шпильки резьбовые . Кто может что-то посоветовать?
Какая фирма изготавливает надежные шпильки?
Цены по-моему умеренные, но я не очень разбираюсь, поэтому если находили дешевле, посоветуйте где. Где можно найти наилучшее соотношение цена-качество?

6 Irrejesty  
0
Здравствуйте!
Думаю приобрести сетка сварная 25 25 . Кто может что-нибуть посоветовать?
Какая фирма поставляет качественные сетка сварная 10х10 ?
Цены я думаю нормальные, но я не очень разбираюсь, поэтому если покупали дешевле, посоветуйте где. Где можно найти хорошее соотношение цена-качество?

5 Vercerfoweria  
0
Предлагаем все размеры фундаментных анкерных болтов ГОСТ 24379.1-80 из марок сталей ст.3, ст.09Г2С и других по пожеланию заказчиков.
Болты фундаментные (анкерный болт) - крепёжная деталь,
в виде прута с резьбовой частью на одном конце и специального приспособления,
подерживающее фундаментный болт внутри фундамента, предназначенная для крепления
строительных конструкций и оборудования.
Фундаментные (анкерные) болты - элементы строительной конструкции,
позволяющие прикрепить её к основанию (фундаменту).
Используются фундаментные болты на всех типах строительства,
от стандартного здания до дамб и атомных электростанций.
Обеспечивают надёжное крепление только к прочным, нехрупким и неэластичным основаниям.
Анкерные болты используются в виде закладных деталей в железобетонных основаниях
для дальнейшего крепления на фундаменте металлоконструкций и оборудования.
variant2

4 Verygevekes  
0
Ищете, где электроды ано 21?
Компания Мегапром предлагает купить электроды цл 11 от лучших производителей на территории России.
Электроды обеспечивют высокие механические свойства сварного соединения и высокую производительность процесса сварки.
Вся продукция сертифицирована и имеет необходимые маркировки.

3 nOlvigioppile  
0
Ищете, где купить канаты, канат гимнастический ?
Компания Мегапром - предлагает купить закрытый канат от лучших производителей на территории России.
Отгрузка из наличия со склада г.Орел. ж/д контейнером или автомобильным транспортом через любую транспортную компанию в кратчайшие сроки в любую точку страны.
Возможна резка, отмотка дробного количества в размер. Вся продукция сертифицирована и имеет необходимые маркировки.

2 nOlvigioppile  
0
Ищете, где купить канаты, канат стальной ?
Компания Мегапром - предлагает купить канат оцинкованный от лучших производителей на территории России.
Отгрузка из наличия со склада г.Орел. ж/д контейнером или автомобильным транспортом через любую транспортную компанию в кратчайшие сроки в любую точку страны.
Возможна резка, отмотка дробного количества в размер. Вся продукция сертифицирована и имеет необходимые маркировки.

1-10 11-11
Имя *:
Email *:
Код *:
Copyright OURWORLD © 2025
Сайт управляется системой uCoz