从Web应用程序向扩展程序发送消息

时间:2013-10-16 14:49:56

标签: google-chrome-extension

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

我是否误解了sendMessage的使用位置,是否有其他技术可用于从任意Web应用程序与我的扩展程序进行通信?

1 个答案:

答案 0 :(得分:0)

有几个选择。

首先,http://developer.chrome.com/extensions/manifest/externally_connectable.html最接近你现在的想法。您希望能够为任意网页添加专有的Chrome特定功能。 external_connectable将为您提供有限版本(请参阅http://developer.chrome.com/extensions/messaging.html#external-webpage示例),但仅适用于特定网页(例如* .yourdomain.com但不包括* .com)。

其次,您可以将网页中的postMessage转换为内容脚本(请参阅http://developer.chrome.com/extensions/content_scripts.html#host-page-communication),该脚本可以执行内容脚本所能执行的任何操作。如果您此时需要chrome。* API,则可以从内容脚本向您的扩展程序页面发送消息,该页面可以访问要求的任何chrome。* API。

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