9

有人可以写出一步一步的指南来为 Windows 上的 FireFox 开发基于 C++ 的插件吗?

http://www.mozilla.org/projects/plugins/上的链接和示例都是旧的且不准确的——“新”链接是在 2004 年添加到页面的。

这个例子可以是任何东西,但我在想一个让 JavaScript 设置名称然后显示“Hello {Name}”的插件。为了显示双向通信,它可以具有返回完整称呼的属性。

虽然不那么重要,但如果该插件也可以在 Chrome 中运行,那就太好了。

4

4 回答 4

6

如果您需要跨浏览器(firefox 和 ie)工作的东西,您可以查看 firebreath:http ://www.firebreath.org

对于一般的“如何在 Windows 上构建 npapi 插件”信息,我有一些关于该主题的博客文章(也链接到上述一些来源)

http://colonelpanic.net/2009/03/building-a-firefox-plugin-part-one/

然而,我真的推荐 firebreath,因为我们正是为那些没有时间进行数月(字面意思)研究的人创建的,我们花了几个月的时间才弄清楚它是如何工作的。但是,如果您不想将它用作插件的基础,您仍然可以在那里找到很多很好的示例代码。

也应该在 Windows 上的 chrome、firefox 和 safari 上工作!=]

祝你好运!

于 2009-12-20T07:38:18.147 回答
5

另请参阅http://developer.mozilla.org/en/Plugins。是的,NPAPI 插件也应该在 Google Chrome 中工作。

[编辑 2015:Chrome 很快就会取消对 NPAPI 的支持http://blog.chromium.org/2014/11/the-final-countdown-for-npapi.html ]

于 2008-09-16T09:36:00.543 回答
3

使用 NPAPI 制作插件相当简单。Gecko 发行版中需要的关键头文件是 npapi.h 和 npupp.h。您将使用名称 NP_Initialize、NP_Shutdown、NP_GetMIMEDescription 和 NP_GetValue 从插件 DLL 或共享库中导出函数,并且您还需要使用所有 NPP 的处理程序填写 NP_Initialize 调用中提供给您的符号表职能。

从该集合中实现的关键函数是 NPP_New 和 NPP_Destroy。这些定义了插件实例的生命周期。如果您要处理从 <object> 或 <embed> 链接的媒体文件,您还需要处理 NPP_NewStream、NPP_WriteReady、NPP_Write 和 NPP_DestroyStream 作为插件从浏览器。Gecko 插件开发者指南中还有更多内容。

于 2008-09-16T03:48:35.387 回答
2

查看 Nixysa http://code.google.com/p/nixysa/。我尝试在 Mozilla SDK 中构建示例,但构建起来很困难。Nixysa 示例很容易构建。加上代码比直接使用 NPAPI 更简洁。唯一的缺点是截至今天 Nixysa 没有很好的文档记录。我有一个 Nixysa 示例,可以根据需要实现回调(我确实计划在处理它时向 Nixysa 提交补丁)。

于 2009-06-30T19:31:20.233 回答