2009年4月19日 星期日

Firefox Plugins入門

底下的內容是研究如何製作Firefox Plugins的學習筆記,記錄在Windows平台上實作外掛的一個簡單方法,這是為了將來要把good嵌到Browser上去所作的準備。在https://developer.mozilla.org/en/Plugins可以得到Firefox Plugins的最新消息。

參考連結

1 :下載SDK

我是在Windows環境開發,所以下載Gecko 1.9 (Firefox 3.0) for Windows版本的SDK。下載完成後,將xulrunner解開至電腦資料夾裡。

下載SDK

2:下載範例程式

下載範例程式

範例要自己手動一個一個檔案下載,將資料夾裡面的檔案除了Makefile.in之外全都下載到你的電腦裡。下載的方式是點擊檔案連結後,在右上角有個Raw File連結,用右鍵點擊這個連結另存新檔。

3:新建VS.NET專案

底下一步步使用VS.NET 2003建立新專案。
  1. 開一個新的VS.NET專案,名稱取作nprt,Application Type選擇DLL,把Empty Project打勾。
  2. 將剛才下載下來的Sample Code全部複製到專案資料夾裡。
  3. 將剛才的檔案都加入到專案裡。
  4. 假設SDK是解到D:\xulrunner-sdk\,則將專案Additional Include Directories設定成:"D:\xulrunner-sdk\include";"D:\xulrunner-sdk\include\plugin";"D:\xulrunner-sdk\include\nspr";"D:\open\xulrunner-sdk\include\java"加入到搜尋路徑上裡。
  5. 將Preprocessor Definitions改成如下內容:WIN32; _WINDOWS; XP_WIN32; MOZILLA_STRICT_API; XPCOM_GLUE; XP_WIN; _X86_; NPSIMPLE_EXPORTS。
  6. 關閉Precomplied Headers功能。
  7. 在Linker/Input/Module Definition File設定為nprt.def。
4:修改程式碼
  1. 將npp_gate.cpp裡的NPP_GetJavaClass函式整個註解掉。
  2. 在Plugin.cpp裡找到函式ScriptablePluginObject::Invoke,將
    if (name == sFoo_id){
    ...
    }
    內容改為
    if (name == sFoo_id){
    MessageBox(NULL, "foo called", "nprt sample", MB_OK);
    }
    (因為原來的Code會讓Firefox當掉)
  3. 編譯產生nprt.dll。
5:測試
  1. 將nprt.dll複製到Firefox的plugins資料夾底下。
  2. 開啟test.html作測試。
+ + +

如果所有步驟都沒出錯的話,應該可以在test.html中間看到一個黑色矩形框,裡面寫了Mozilla/5.0....的一個字串。

這個test.html裡面有些東西似乎是不太對的,其它請自己修修改改玩玩。

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...