扩展和插件之间的通信

时间:2012-07-27 03:48:18

标签: javascript firefox firefox-addon npapi browser-plugin

我编写了一个Firefox扩展程序,用于查询某些浏览器信息。我需要将此信息发送到我的扩展程序中的NPAPI插件。

我怎样才能做到这一点?有没有办法在NPAPI插件和扩展的JavaScript代码之间进行通信?我很感激任何有用的链接或代码片段。

1 个答案:

答案 0 :(得分:2)

如果插件提供scripting interface,扩展程序只需在想要发送信息时调用其函数。

您需要有权访问插件元素,例如:

  • var plug = someDocument.getElementById('yourPluginId');
  • 或找到您想要的embed / object元素而无需特定ID

要查找没有特定id的元素,您可以例如收集他们using XPath或使用getElementsByTagName() 请记住,如果您没有使用特定于插件的插件,则mime类型可能不一定标识您的插件。除type属性外,您可能还需要检查自定义插件名称/版本信息。

获得插件元素后,您只需通过JavaScript调用函数(例如plug.someFunction(someData);)。