Firefox Addon with Panel - манипулирование текущим документом

Я пишу аддон Firefox, используя новый SDK, который выполняет 5 очень простых заданий. Они примерно связаны, поэтому я бы предпочел один аддон с выпадающим меню, которое я реализовал в Panel.

Я работаю над новой документацией SDK, но не могу найти прямого решения. Я могу добавить панель, но не вижу, как манипулировать документом на текущей вкладке.

Это возможно, не так ли? Используя глобальный document не работает, так как предположительно относится к панели или, по крайней мере, к документу, который я просматриваю.

Итак, как мне получить доступ к документу с панели аддона?

Спасибо

1 ответ

Короткий ответ на ваш вопрос заключается в том, что вы не получаете доступ к веб-контенту из основного кода JavaScript. Вы взаимодействуете с документом (веб-контентом) на вкладке браузера с помощью скриптов содержимого. Вы можете сделать так, чтобы скрипт содержимого передавал сообщения в ваш основной скрипт.

MDN суммирует принципы использования скриптов контента с SDK следующим образом:

Сценарии содержимого могут быть одним из наиболее запутанных аспектов работы с SDK, но вам, скорее всего, придется их использовать. Есть пять основных принципов:

  • основной код надстройки, включая main.js и другие модули из lib, может использовать API - интерфейсы высокого и низкого уровня SDK, но не может напрямую обращаться к веб-контенту
  • Сценарии содержимого не могут использовать API-интерфейсы SDK (нет необходимости в глобальном экспорте, требуется), но могут получать доступ к веб-содержимому.
  • API-интерфейсы SDK, использующие сценарии содержимого, такие как page-mod и tabs, предоставляют функции, которые позволяют основному коду надстройки загружать сценарии содержимого в веб-страницы.
  • Сценарии содержимого могут быть загружены в виде строк, но чаще хранятся в виде отдельных файлов в каталоге "data" дополнения. По умолчанию jpm не создает каталог "data", поэтому вы должны добавить его и поместить туда свои скрипты контента.
  • API передачи сообщений позволяет основному коду и сценариям содержимого взаимодействовать друг с другом

Точно, как вы будете делать то, что вы хотите, неясно, потому что вы не предоставили четкое описание того, что вы делаете. Тем не менее, это звучит так, будто вы можете реализовать то, что вы хотите, используя контекстное меню. Контекстное меню - это один из способов прикрепить скрипт содержимого к текущей вкладке, и оно может предоставить вам ощущение выпадающего меню, которое вам нужно (хотя оно является частью контекстного меню, а не выпадающего меню).

Другие вопросы по тегам