Добавить функциональность в расширение firefox

#javascript #firefox #firefox-addon #xul

#javascript #firefox #firefox-дополнение #xul

Вопрос:

Я пытаюсь сделать свои первые шаги в программировании Firefox addon, но я запутался в одном моменте.Я прочитал руководства «как создать дополнение hello world», но я не могу понять, как добавить сложное / расширенное поведение, скажем, с помощью JavaScript. Я думаю, что мне нужно написать код JavaScript, поскольку мне пришлось «поместить» его на свою веб-страницу и создать ссылку из файла xul на файл js. Я прав? И firefox API называется Jetpack или я совершенно не в том месте?

Ответ №1:

На самом деле вы можете добавить обработку событий к своим элементам XUL способом, очень похожим на то, как вы бы делали это на обычных веб-страницах.

Например, в вашем основном документе XUL вы бы добавили ссылки на javascript, содержащие вашу логику / обратные вызовы, вот так:

 <script src="findfile.js"/>
<script src="chrome://findfiles/content/help.js"/>
<script src="http://www.example.com/js/items.js"/>
  

И если предположить, что у вас есть кнопка в вашем XUL (где-то в вашем аддоне), то вы можете заставить ее вызывать javascript, когда происходит какое-то событие, подобное этому:

 <button label="OK" oncommand="doMyAction();"/>
  

или что-то вроде:

 <button label="OK" oncommand="alert('Button was pressed!');"/>
  

Ознакомьтесь с этой документацией Mozilla для получения дополнительной информации об этом..

Комментарии:

1. Я просматривал документацию javascript и даже не подумал взглянуть на xul…my плохо. спасибо за совет.

Ответ №2:

Плагин — это, по сути, zip-файл с другим именем. Вы создадите свой javascript и включите его в архивированный файл плагина. При установке он копируется в каталоги Firefox. Создание одного из них не является тривиальным и требует хорошего знания работы javascript и браузера… или много терпения.

Комментарии:

1. Хорошо, я знаю о xpi и обо всем этом. Мой вопрос касается «обработки событий» (если можно так выразиться). Я создам, допустим, несколько кнопок с помощью XUL. Когда я нажимаю button1, я хочу foo.js вызываемый скрипт. Как я могу это сделать?