2012-07-27 83 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

相關問題