Отправка сообщения из веб-приложения на расширение

У меня есть расширение, которое предоставляет ряд услуг любому веб-приложению, которое их требует. Я предполагал, что веб-приложение может использовать chrome.runtime.sendMessage(ext-id, message), но когда я пытаюсь, на chrome.runtime нет функции sendMessage.

Я неправильно понял, где можно использовать sendMessage, и есть ли другой способ, который я могу использовать для связи с произвольным веб-приложением до моего расширения?

1 ответ

Есть несколько вариантов.

Во-первых, http://developer.chrome.com/extensions/manifest/externally_connectable.html ближе всего к тому, как вы думаете об этом прямо сейчас. Вы ожидаете, что сможете добавить собственные функциональные возможности Chrome к произвольным веб-страницам. externally_connectable предоставит вам ограниченную версию (см. http://developer.chrome.com/extensions/messaging.html#external-webpage для примера), но только для определенных веб-страниц (например, *.yourdomain.com, но не *.com).

Во-вторых, вы можете отправлять сообщения со своей веб-страницы на сценарий контента (см. Http://developer.chrome.com/extensions/content_scripts.html#host-page-communication), который может делать все, что может использовать сценарий содержимого. Если вам нужны хром. * API в этот момент, вы можете отправить сообщение из сценария контента на свою страницу расширения, которая имеет доступ к любым хром-API-интерфейсам, которые он просил.

Наконец, в зависимости от того, каково ваше "количество услуг" на самом деле, вы всегда можете выполнить другой скриптScript непосредственно на целевой веб-странице, что аналогично принуждению веб-страницы включать его, как если бы это был другой тег

licensed under cc by-sa 3.0 with attribution.