Windows 7中的NPAPI插件问题

时间:2010-12-08 09:42:05

标签: javascript firefox plugins windows-7 npapi

我有一个NPAPI插件,我已经编写并在Firefox 3.x上使用了一段时间没有问题。

该对象定义如下 -

<object class="someClass" id="pluginobj" type="application/x-plugintype"></object>

然后我使用以下格式调用方法 -

if( document.getElementById("pluginobj") != null )
{
    document.getElementById("pluginobj").someMethod(someParams));
}

这就是我理解应该做的事情并且一直很好。但是,我最近在Windows 7机器上安装了相同的插件(使用相同版本的Firefox),现在无法找到插件中定义的功能,因此我收到以下错误 -

错误:document.getElementById(“pluginobj”)。someMethod不是函数

插件中没有任何变化,任何被调用的方法都会出现这种错误,而不是特定的方法,并且它在Windows XP计算机上仍然可以正常工作。

很困惑!有人可以帮忙吗?感谢。

注意:我还尝试在我的插件中登录,看起来它甚至没有进入NP_Initialize和NP_GetEntryPoints方法。

我已经看到一些建议,可能是依赖项和库链接到插件,但我不确定win 7上可能缺少什么?

Dependency Walker显示错误,说“并排配置信息不正确”?

1 个答案:

答案 0 :(得分:0)

您是否从npapi插件链接到其他DLL文件? Windows 7在查找DLL文件的方式上有所不同,但我不知道细节。我过去看过插件的时间问题是在Windows 7上找不到其中一个dll文件。您可以尝试将依赖项DLL文件复制到system32目录(不是永久性的,只是为了查看是否存在问题)。我希望能够找到它。

如果这是问题,我很遗憾不确定如何修复它,但它可能会有所帮助。

基于并排配置问题的另一种可能性是,您的visual studio项目正在创建一个清单,告诉Windows它需要Windows 7中不存在的其中一个DLL的特定版本。请参阅:http://buffered.io/2008/05/17/resolving-side-by-side-configuration-issues/

我认为我之前通过禁用清单解决了插件中的问题。我不确定; FireBreath生成npapi插件dll的方式我从未遇到过这个问题,所以去年我不需要担心它。您可以考虑查看适用于IE和Firefox(activex和npapi)的FireBreath,并且有一个非常好的社区来跟踪此类问题。