2012-07-27 82 views
0

我写了一个Firefox扩展,它查询一些浏览器信息。我需要将这些信息从我的扩展中发送到NPAPI插件。扩展和插件之间的通信

我该如何做到这一点?有什么方法可以在NPAPI插件和扩展的JavaScript代码之间进行通信?我很感激任何有用的链接或代码片段。

+0

如果他们解决了您的问题,请不要忘记[接受答案](http://meta.stackexchange.com/a/5235)以前的问题。 – 2012-08-01 12:46:30

回答

2

如果插件提供了scripting interface,扩展可以在需要发送信息时调用它的函数。

您需要有访问所述插件元件,如:

  • var plug = someDocument.getElementById('yourPluginId');
  • 或通过寻找你想要的embed/object元素没有一个具体的ID

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

一旦你有了插件元素,你可以简单地从JavaScript调用函数(例如plug.someFunction(someData);)。

+0

感谢Georg Fritzsche :-) – 2012-07-30 13:33:55

+0

我的意思是说firefox扩展如何调用可编写脚本的npapi函数? – 2012-07-30 13:53:13

+0

@ user1530767:更新了答案。 – 2012-07-30 14:31:14

相关问题