Я работаю над загрузочным расширением для Firefox для Android, и я хочу импортировать js-файл в bootstap.js (например, импортировать компонент в расширения xul). Классический метод использования chrome.manifest to use a resource alia не разрешен для загрузочных расширений. Я попробовал этот код Erik Vold, но это не похоже на работувключая js-файл в bootstrap.js firefox для расширения android
function startup(data) AddonManager.getAddonByID(data.id, function(addon) {
// Include some utility functions
include(addon.getResourceURI("includes/scanner.js").spec);
});
Я очень ценю помощь и спасибо.
nmaier спасибо за ответ, вот как я сделал вещи, и я не могу понять, где я делаю ошибку (trackdetect - это идентификатор моего расширения): в chrome.manifest я написал: content trackdetect chrome/includes/ в bootstrap.js: Cu.import ("chrome: //trackdetect/includes/scanner.j с "); Еще раз спасибо. – user2102196
'content something somedir' будет зарегистрировать содержимое somedir под' chrome: // something/content/'. Следовательно, 'somedir/somefile.js' будет доступен как' chrome: // something/content/somefile.js'. В вашем случае: 'chrome/includes/scanner.js' будет доступен на' chrome: // trackdetect/content/scanner.js'. Для получения дополнительной информации вы можете обратиться к уже связанным документам. – nmaier
Простите за то, что вы так долго ответили на свой вопрос, я сделал изменения, как вы объяснили, но я получаю эту ошибку: E/GeckoConsole (22534): Хром-пакет не зарегистрирован для chrome: //trackdetect/content/scanner.js В начале я подумал, что есть проблема с упаковкой папки, но после распаковки упакованного расширения я обнаружил, что папка там. Итак, я действительно не знаю, в чем причина проблемы, возможно, импорт не " t support "chrome: //"? Я хотел бы загрузить ресурс вручную, но, честно говоря, есть части (ранее предложенного) кода, которые я не понимаю. – user2102196