0

我有一个扩展程序,它为任何需要它们的网络应用程序提供许多服务。我一直假设 Web 应用程序可以使用 chrome.runtime.sendMessage(ext-id,message),但是当我尝试时,chrome.runtime 上没有 sendMessage 函数。

我是否误解了 sendMessage 可以在哪里使用,是否有另一种技术可以用来从任意 Web 应用程序与我的扩展程序进行通信?

4

1 回答 1

0

有几个选项。

首先, 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),它可以做任何内容脚本可以做的事情。如果此时您需要 chrome.* API,您可以从内容脚本向您的扩展页面发送消息,该页面可以访问任何要求的 chrome.* API。

最后,根据您的“服务数量”实际是多少,您始终可以将另一个脚本直接执行到目标网页中,这类似于强制网页包含它,就好像它是另一个 <script> 标签一样。(仅类似于,不完全相同,因为注入通常发生在页面加载后。)

于 2013-10-17T16:58:24.670 回答