簡體   English   中英

如何在 Windows 上編寫 C++ FireFox 3 插件(非擴展)?

[英]How to write a C++ FireFox 3 plugin (not extension) on Windows?

有人可以為 Windows 上的 FireFox 開發基於 C++ 的插件的分步指南嗎?

http://www.mozilla.org/projects/plugins/上的鏈接和示例都是舊的和不准確的 - “新”鏈接是在 2004 年添加到頁面的。

這個例子可以是任何東西,但我在想一個插件,讓 JavaScript 設置名稱,然后顯示“Hello {Name}”。 為了顯示雙向通信,它可以具有返回完整稱呼的屬性。

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

如果您需要跨瀏覽器(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! =]

祝你好運!

另請參閱http://developer.mozilla.org/en/Plugins 是的,NPAPI 插件也應該在 Google Chrome 中工作。

[編輯 2015:Chrome 很快就會刪除對 NPAPI 的支持http://blog.chromium.org/2014/11/the-final-countdown-for-npapi.html ]

使用 NPAPI 制作插件相當簡單。 您需要的 Gecko 發行版中的關鍵 header 文件是 npapi.h 和 npupp.h。 您將從插件 DLL 或名稱為 NP_Initialize、NP_Shutdown、NP_GetMIMEDescription 和 NP_GetValue 的共享庫中導出函數,並且您還需要填寫在 NP_Initialize 調用中提供給您的符號表,其中包含所有 NPP 的處理程序功能。

從該集合中實現的關鍵函數是 NPP_New 和 NPP_Destroy。 這些定義了插件實例的生命周期。 如果您要處理從 <object> 或 <embed> 鏈接的媒體文件,您還需要處理 NPP_NewStream、NPP_WriteReady、NPP_Write 和 NPP_DestroyStream 作為插件從瀏覽器。 Gecko 插件開發者指南中還有更多內容。

查看 Nixysa http://code.google.com/p/nixysa/ 我嘗試在 Mozilla SDK 中構建示例,但它們很難構建。 Nixysa 示例很容易構建。 加上代碼比直接使用 NPAPI 更簡潔。 唯一的缺點是截至今天 Nixysa 沒有很好的文檔記錄。 我有一個 Nixysa 示例,可以根據需要實現回調(我確實計划在處理它時向 Nixysa 提交補丁)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM