Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.02.2012, 20:20
Новичок на форуме
Отправить личное сообщение для little Посмотреть профиль Найти все сообщения от little
 
Регистрация: 18.11.2011
Сообщений: 4

Components.utils.import в расширении
Не могу заставить работать Components.utils.import(...) в расширении.
Всё время выдаёт ошибку, что не может найти мой импортируемый файл.
Перелопатил статьи на MDN-е: Using JavaScript code modules, Components.utils.import и им подобные.
Файл test.js упростил до безобразия:
var EXPORTED_SYMBOLS = ["tst_1"];
var tst_1 = 300;
и положил его вообще во все возможные папки моего расширения. Пробовал его подгрузить и так:
Components.utils.import("chrome://mytoolbar/content/test.js");
и так, прописав алиас для resource в файле chrome.manifest
Components.utils.import("resource://modules/test.js");
Components.utils.import("resource://test.js");

Результат одинаковый - не видит - выдаёт эксепшн о ненайденном файле.
Причина, возможно, в этом, но в самой статье никакого решения не приводится:
Цитата:
Custom modules and XPCOM components

Note that prior to Gecko 2.0 JavaScript XPCOM components are loaded before chrome registration. This means you can't use Components.utils.import() with your own resource URL at the top level in a component source. A possible solution is moving the call to Components.utils.import() into the XPCOM component constructor (discussion).
По ссылке на discussion открывается темка, где несколько человек пишут, что у них тоже нихрена не работает, и просят поделиться, как этой беде помочь.
Как переместить вызов Components.utils.import в конструктор XPCOM компонента я, честно говоря, понятия не имею, и поиск по интернету как-то ничем особо мне не помог. Видел на фоне подобных вопросов пару тем, где люди отписались, что разобрались с проблемой, но не написали как именно.

Может кто-нибудь что-то полезное по этой теме посоветовать?

Подгружаемый модуль нужен для использования в качестве синглтон объекта для синхронизации работы нескольких экземпляров расширений, появляющихся в результате открытия новых окон (не табов) браузера. Если есть какие-то другие способы для их синхронизации или работы в единственном числе, буду рад информации по ним.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модальное окно в расширении testuser Events/DOM/Window 13 16.12.2010 09:04