2015-07-22 61 views
2

我的firefox插件是使用firebreath框架編寫的。它工作得很好,直到28版的Firefox。對於更高版本,我無法通過firefox插件從我的JavaScript頁面調用firebreath DLL的功能。它在示例html文件中非常完美。我也附上我的源代碼供您參考。無法調用firebreath dll函數

電話firebreath DLL函數:

var plugin = document.getElementById('dllID'); 
if(plugin.valid) 
{ 
    var ngInfo = plugin.ReturnUsers(param1, param2); 
    if(ngInfo.length >0) 
    { 
     // do something 
    } 
} 

Overlay.xul:

<?xml version="1.0"?> 
<?xml-stylesheet href="chrome://global/skin/"?> 
<overlay id="guardOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml"> 
<script type="application/x-javascript" src="chrome://guard/content/ngContent.js"/> 
    <vbox style="height:0;"> 
     <html:embed type="application/x-guard" id="guard" style="height:0;"/> 
    </vbox> 
</overlay> 

在捕獲異常這表明, 類型錯誤:plugin.ReturnUsers不是一個函數

有誰知道解決我的問題?

+0

它是一個二進制文件嗎?還是你用js-ctypes調用它?二進制文件已被棄用,您需要轉移到js-ctypes:https://blog.mozilla.org/addons/2015/05/04/dropping-support-for-binary-components/comment-page-1/#comment- 215903 – Noitidart

+0

哪個平臺? Windows,Mac,Linux?在Windows中,他們可能已經去了Firefox的64位插件28 – taxilian

+0

它是爲windows平臺編寫的 –

回答

0

最有可能的問題是,你已經結束了運行64位版本的Firefox; 64位版本的Firefox只能運行64位版本的插件。嘗試安裝32位版本的Firefox 28或將您的插件重建爲64位。