Глобальный объект
Разрабатываю приложение на XULrunner'e. Там у меня используется соединение с SQLite.
Сначала о том, что уже есть:
При старте приложения запускается main.xul, в котором подключается connect.js и initialize.js. В скрипте initialize.js мы подключаемся к БД, используя метод Connect.connect() из connect.js.
Так вот, хочу сделать следующее:
Хочется, чтобы в других скриптах и xul-файлах я мог получить доступ к объекту Connect (чтобы он как-бы находился в глобальной видимости для всех скриптов и xul-файлов).
Как такое можно сделать? Я новичек в XUL, еще многого не знаю, поэтому, прошу помощи.
Можно использовать модуль.
В файле, который требует доступа к глобальным объектам
пишете Components.utils.import("resource://app/modules/my_module.jsm");");
Файл my_module.jsm должен лежать в каталоге modules xul-приложения
Объявленные в модуле как доступные переменные суть глобальные.
Подробнее про модули: https://developer.mozilla.org/en/Using_JavaScript_code_modules
Kirill[досье]
Что-то не получается загрузить модуль.
Выдает ошибку
Error: uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXPCComponents_Utils.import]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: chrome://warehouse/content/warehouse.js :: <TOP_LEVEL> :: line 10" data: no]
Папку modules нужно класть в корень приложения? И нужно ли регистрировать папку modules в файле chrome.manifest?
![[logo]](/site/images/logo.jpg)