【问题标题】:Communication between extension and plugin扩展和插件之间的通信
【发布时间】:2012-07-27 03:48:17
【问题描述】:

我写了一个 Firefox 扩展来查询一些浏览器信息。我需要将此信息从我的扩展程序发送到 NPAPI 插件。

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

【问题讨论】:

  • 如果您之前的问题解决了您的问题,请不要忘记to accept answers

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


【解决方案1】:

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

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

  • var plug = someDocument.getElementById('yourPluginId');
  • 或通过查找您想要的没有特定 ID 的 embed/object 元素

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

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

【讨论】:

  • 我的意思是说firefox扩展如何调用脚本化的npapi函数?
  • @user1530767:更新了答案。
  • 如何找到没有特定 id 的嵌入/对象元素?
  • 其实插件是我们自己写的,不知道怎么给插件指定pluginId...
  • @user1530767,您是从插件中注入插件,它是否在您的网站上使用,...? IE。你可以为对象或嵌入元素设置 id 属性吗?
猜你喜欢
  • 2018-10-05
  • 1970-01-01
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 2014-12-13
相关资源
最近更新 更多