2010-02-20 79 views
0

我已成功在網頁上運行NPRuntime插件,方法是將其複製到firefox插件目錄中。我想創建一個使用它的Firefox擴展,所以我創建了一個小的擴展,在狀態欄上顯示一個文本框和一個按鈕,按鈕點擊調用一個JavaScript函數,該函數從文本框獲取值並將其作爲參數傳遞給NpRuntime插件中的函數嵌入在XUL中。在Firefox擴展中使用NPRuntime插件

但是,當我嘗試調用函數,我得到Javascript異常,因爲該變量爲空。

try{ 
var myplugin=document.getElementById("myplugin"); 
myplugin.test(document.getElementById("txtUri").value);// calling function 
}catch(e){ 
alert(e.message); //throws the error as myplugin is null 
} 

當我刪除函數調用沒有錯誤所以嵌入標籤得到JS認可。我在firefox插件目錄中保存了一個插件dll。 我也嘗試在擴展根目錄下創建一個插件目錄,並保留我的dll,但它沒有成功

請幫我弄去,

感謝

回答

1

「這是在XUL內嵌」

如何?我敢打賭你在XUL命名空間中使用了嵌入>,它沒有任何特殊的含義。

您應該define the HTML namespace and use the embed tag in the html namespace

當我刪除函數調用沒有錯誤,所以嵌入標籤得到認可的JavaScript。

這是錯誤的。如果你刪除了函數調用,那麼沒有代碼可以失敗 - getElementById從不會拋出(至少在這種簡單的情況下不會)。這並不表示你的XUL代碼是好的。

我也嘗試在擴展根目錄下創建一個插件目錄,並保留我的dll,但它沒有成功。

也就是說definitely supposed to work。你可以把一個XPI在某個地方展示問題嗎?