Межстраничное общение в расширении Firefox

У меня есть две вкладки, которые использует мое расширение, и я хотел передавать события назад и вперед между ними. Я уже разработал расширение Google Chrome, которое делает это через API фоновой страницы, но в Firefox, похоже, нет аналога.

Я думал, что менеджер сообщений в документах по расширению Firefox справится с этой задачей, но документация по объекту довольно скудная.

Я был бы так же рад использовать одну из вкладок для управления другой, если не могу напрямую импортировать идеи фоновой страницы из API Google Chrome.

Любая помощь / руководство было бы здорово.

1 ответ

Решение

Для этого вам нужно настроить конвейер событий в main.js, который принимает события из скрипта контента одной страницы и передает его скрипту контента другой страницы:

https://addons.mozilla.org/en-US/developers/docs/sdk/1.7/dev-guide/guides/content-scripts/index.html

Я не совсем уверен, каков ваш вариант использования, поэтому трудно рекомендовать более конкретные методы. Что бы вы сделали, это:

  • убедитесь, что к каждой вкладке прикреплен скрипт содержимого
  • когда данное событие происходит на вкладке, отправьте это событие в main.js, используя self.port.emit
  • когда это событие достигает main.js, отправьте его работнику для другой вкладки.

Одна вещь, которая мне не ясна, это то, будут ли эти 2 вкладки единственными вкладками, открытыми с этим конкретным URL?

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