javascript - Windows 7 中的 NPAPI 插件问题

标签 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 显示错误提示“并行配置信息不正确”?

最佳答案

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

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

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

我想我之前通过禁用 list 解决了插件中的这个问题。我不知道;我从来没有遇到过这个问题 FireBreath生成 npapi 插件 dll,所以我在去年不需要担心它。您可能会考虑查看 FireBreath ,它适用于 IE 和 Firefox(activex 和 npapi),并且有一个非常好的社区来跟踪此类问题。

关于javascript - Windows 7 中的 NPAPI 插件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386037/

相关文章:

javascript - 在 JavaScript 中检测 "invalid date"日期实例

javascript - 在 XMLHttpRequest 中设置授权 header 更改 HTTP 动词

html - Bootstrap 4 Card Flex Width 在 Firefox 上无法正常工作

java - 在范围 bukkit 编码中无法访问该类型的封闭实例

email - 如何使用 email-ext 插件在 Jenkins 中设置发件人地址?

javascript - 在 HTML 超链接标记的 onClick 中调用 JavaScript 函数 ping() 导致 TypeError

javascript - 为什么 Jasmine spy 不认为它被调用,即使它返回了 andReturn 值?

javascript - 我怎样才能找到 HH :MM:SS difference between two UNIX timestamps?

javascript - Firefox、Selenium、toDataURL、Uint8ClampedArray 和 Python

javascript - 在 Firefox 中,使用插件或扩展来调用 "unsafe"API?