2012-09-11 2 views
0

Как я пишу расширение XUL для Firefox, я нахожу, что хочу поделиться некоторыми функциональными возможностями (бизнес-логикой) по всему расширению. Что было бы лучшим местом для хранения?Где должны размещаться служебные функции в расширении Firefox

Могу ли я создать файл какой-либо библиотеки (javascript), который всегда загружается первым?

ответ

2

Вы, скорее всего, захотите создать JavaScript code module. Вы можете использовать Components.utils.import(), чтобы загрузить его:

Components.utils.import("chrome://myaddon/content/utils.jsm"); 

И в utils.jsm вы определяете, какие символы должны быть импортированы это заявление, например:

var EXPORTED_SYMBOLS = ["Utils"]; 

var Utils = { 
}; 

модуль будет загружен при первом использовании и остаться в памяти после этого - будет только один экземпляр модуля, независимо от того, сколько мест в вашем расширении использует его. Обратите внимание, что я использовал URL-адрес chrome:// для загрузки модуля, это поддерживается, начиная с Firefox 4. В документации рекомендуется использовать URL-адреса resource://, которые являются более чистыми, потому что модули фактически не имеют ничего общего с пользовательским интерфейсом - все еще, используя URL-адрес chrome:// часто проще.

Смежные вопросы