我寫了一個Firefox擴展,它查詢一些瀏覽器信息。我需要將這些信息從我的擴展中發送到NPAPI插件。擴展和插件之間的通信
我該如何做到這一點?有什麼方法可以在NPAPI插件和擴展的JavaScript代碼之間進行通信?我很感激任何有用的鏈接或代碼片段。
我寫了一個Firefox擴展,它查詢一些瀏覽器信息。我需要將這些信息從我的擴展中發送到NPAPI插件。擴展和插件之間的通信
我該如何做到這一點?有什麼方法可以在NPAPI插件和擴展的JavaScript代碼之間進行通信?我很感激任何有用的鏈接或代碼片段。
如果插件提供了scripting interface,擴展可以在需要發送信息時調用它的函數。
您需要有訪問所述插件元件,如:
var plug = someDocument.getElementById('yourPluginId');
embed
/object
元素沒有一個具體的ID要查找的元素沒有特定的id
,你可以例如收集他們using XPath或使用getElementsByTagName()
。
請記住,如果您沒有使用特定於您的插件的MIME類型,則可能不一定會標識您的插件。除了type
屬性之外,您可能還需要檢查自定義插件名稱/版本信息。
一旦你有了插件元素,你可以簡單地從JavaScript調用函數(例如plug.someFunction(someData);
)。
感謝Georg Fritzsche :-) – 2012-07-30 13:33:55
我的意思是說firefox擴展如何調用可編寫腳本的npapi函數? – 2012-07-30 13:53:13
@ user1530767:更新了答案。 – 2012-07-30 14:31:14
如果他們解決了您的問題,請不要忘記[接受答案](http://meta.stackexchange.com/a/5235)以前的問題。 – 2012-08-01 12:46:30