2010-02-20 84 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在某个地方展示问题吗?