【问题标题】:Unable to load npapi helloworld plugin as extension in chrome browser无法在 Chrome 浏览器中加载 npapi helloworld 插件作为扩展
【发布时间】:2013-01-02 18:29:07
【问题描述】:

https://github.com/axgle/npapi-chrome-plugin-helloworld 下载了 NPAPI hello-world 插件,并使用 Chrome 开发者模式将其打包为 chrome 扩展 (crx)。

在 chrome 浏览器中加载了上述扩展,并尝试在 chrome 浏览器中打开 test.html(提供上述插件)。但它说“无法加载插件”

下面是test.html的源码

<doctype html>
<html>
<head>
<script>
window.onload = function(){
    test = document.getElementById("pluginObj");
    alert(test.sayHello());
}
</script>
</head>
<embed id="pluginObj" type="application/x-helloworld"> 
<body></body>
</html>

根据我的验证,插件正在嵌入(因为在更改测试时它会提供 HTML 文档对象)但无法调用插件的 sayHello 方法。

但是,当我尝试在另一台 PC 上加载上述扩展时,它正确加载并能够调用插件的 sayHello 方法。 两个系统都有相同的操作系统(Windows XP + SP3)并且都使用相同版本的 chrome 浏览器(23.0.1271.97 m)

感谢您在这方面的任何帮助。

【问题讨论】:

    标签: npapi


    【解决方案1】:

    当您将其添加到 CRX 时,您是否将其标记为公开?如果您不这样做,它将在扩展程序之外不可见。

    the relevant docs

    这是另一个相关问题:Google Chrome Extensions and NPAPI

    【讨论】:

    • 是的,我做到了。 manifest.json 的结构 { "name": "npapi_helloworld", "version": "1.0", "background_page":"test.html", "manifest_version": 2, "description": "npapi 的一个小 helloworld 示例。 ", "插件":[ {"path":"plugin/npsimple.dll","public":true} ] }
    • 尝试在dependency walker 中打开DLL,看看在它不能工作的机器上是否有任何缺失的依赖关系在它工作的机器上。很快就会想到 msvcrt.dll
    • 是的 DLL 依赖于 msvcp100d.dll 和 msvcr100d.dll。将这些 dll 与扩展一起打包,并且可以正常工作。感谢您的所有帮助。
    • 好!标记答案? (点击答案旁边的复选框)
    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多