Возможен ли относительный URL / путь в Components.utils.import()?

#javascript #firefox #firefox-addon #firefox-addon-restartless

#javascript #firefox #firefox-аддон #firefox-аддон-без перезапуска

Вопрос:

Относительный URL / путь работает в overlay XUL, вместо использования полного chrome://............

Я пытался и не смог использовать его с. Components.utils.import() Возможно ли это?

Также замечено: ошибка 628669 — Обеспечение поддержки относительных URL-адресов в компонентах utils import (модули JSM, JS)

Ответ №1:

Если вы изучите ошибку, на которую вы ссылались, вы заметите, что относительный импорт реализован как XPCOMUtils.importRelative() .

 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.importRelative(this, "bar.jsm");
 

Но это будет работать только с другими модулями кода, но не со сценариями наложения или bootstrap.js .
Для таких случаев я бы просто написал вспомогательную функцию…

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

1. Я понимаю… на самом деле целью было импортировать jsm скрипт из bootstrap.js ie Components.utils.import('local.jsm');

2. bootstrap.js в любом случае, на самом деле это не относится ни к какому chrome: URL-адресу (или, по крайней мере, загрузчик этого не знает)… Он загружается из некоторого file: (распакованного) или jar: (XPI) URI, и вы все равно не можете загрузить те, которые используете Cu.import .