Xpoint
   [напомнить пароль]

Глобальный объект

Метки: [без меток]
2009-05-22 09:27:19 [обр] Андрей Анатольич+(1/46)[досье]

Разрабатываю приложение на XULrunner'e. Там у меня используется соединение с SQLite.

Сначала о том, что уже есть:

При старте приложения запускается main.xul, в котором подключается connect.js и initialize.js. В скрипте initialize.js мы подключаемся к БД, используя метод Connect.connect() из connect.js.

Так вот, хочу сделать следующее:
Хочется, чтобы в других скриптах и xul-файлах я мог получить доступ к объекту Connect (чтобы он как-бы находился в глобальной видимости для всех скриптов и xul-файлов).

Как такое можно сделать? Я новичек в XUL, еще многого не знаю, поэтому, прошу помощи.

спустя 5 часов [обр] Kirill(0/3)[досье]

Можно использовать модуль.
В файле, который требует доступа к глобальным объектам
пишете Components.utils.import("resource://app/modules/my_module.jsm");");
Файл my_module.jsm должен лежать в каталоге modules xul-приложения
Объявленные в модуле как доступные переменные суть глобальные.

Подробнее про модули: https://developer.mozilla.org/en/Using_JavaScript_code_modules

спустя 21 час [обр] Андрей Анатольич+(1/46)[досье]
Kirill[досье] Спасибо, вернусь к модулям (так как уже пробовал сделать при помощи модуля, но подумал, что делаю что-то не то :) )
спустя 3 часа 33 минуты [обр] Андрей Анатольич+(1/46)[досье]

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?

спустя 8 минут [обр] Андрей Анатольич+(1/46)[досье]
Фуф, все, разобрался с этим.
Powered by POEM™ Engine Copyright © 2002-2005