2011-09-17 87 views
0

我無法在Firefox擴展中加載NPAPI插件。我現在這樣做的方式是插件已經在Windows中註冊,所以我通過覆蓋層加載嵌入元素,注入到通過window.onload訪問的鉻合金&中。顯然,NPAPI元素已加載,但我無法訪問任何本機函數。無法訪問Firefox擴展中的NPAPI功能

這是我的main.xul:

<overlay ...> 
    <window id="main-window"> 
    <embed type="application/x-myplugin" id="myplugin" width="300" height="300"></embed> 
    </window> 
</overlay> 

我設置寬度/高度值,所以我可以看到插入到鉻嵌入。

這裏是我的JS:

window.addEventListener("load", function() { 

    var plugin = document.getElementById("myplugin"); 
    dump(plugin + "\n"); 
    dump("version: " + plugin.version + "\n"); 

}); 

轉儲:

[object XULElement] 
undefined 

如果相同的嵌入代碼放置到HTML文檔,plugin.version將返回 「1000」。 NPAPI插件已確認工作,因爲我可以在HTML文檔中工作,並加載到Chrome擴展程序中。

有什麼我做錯了嗎?請注意,我必須在chrome中加載NPAPI插件,而不是將其按需注入到頁面中,因爲屬性需要從與網頁分離的其他對話框中檢索。也許還有另外一種方法來加載一個NPAPI插件,每個瀏覽器的加載可以從Firefox擴展中調用一次。

如果有任何幫助,NPAPI是使用Firebreath框架構建的。

注:我已經通過此線程:link,顯然可以得到插件加載,但仍然無法訪問任何功能。

謝謝。

回答

1

XUL中沒有<embed>標記,您的意思是使用HTML <embed>標記。使用HTML命名空間本文標籤:

<embed xmlns="http://www.w3.org/1999/xhtml" ...></embed> 

其他信息:https://developer.mozilla.org/en/Namespaces

+0

非常感謝!這解決了它。 –