firefox外掛程式(plugin)開發概述

來源:互聯網
上載者:User

firefox的外掛程式分兩種類型,一種extension,叫擴充,一種是plugin,我們叫外掛程式.兩種是完全不同的兩個東西。extension相對來說簡單很多,用的主要是XUL,只是xml的一個變相。而plugin相對來說複雜一些。具體的官網說明如下https://developer.mozilla.org/en/Gecko_Plugin_API_Reference
一、 外掛程式的標準
  1、在windows平台,Firefox的外掛程式是以動態庫形式(dll)存在的,並只去識別在其安裝目錄下plugins檔案夾下的dll;
  2、dll的名是以8.3原則來命名的,即其名字所包含的字元不超過8個字元且以dll結尾的檔案,還有一個規定就是其名字必須以np開頭,例如:npXXX.dll,而XXX不超過六個字元;
  3、dll是屬於MIME(一種標準)類型,要不Firefox瀏覽器不認識他;
  4、dll匯出的函數必須是NP_GetEntryPoints、NP_Initialize、NP_Shutdown是這三個,這是Firefox瀏覽器能夠識別的在個介面,具體說明在外掛程式的生命週期中說明。
二、 外掛程式的生命週期
  1、 第一次開啟含量有外掛程式的頁面時,瀏覽器最先調用NP_GetEntryPoints作為調用外掛程式的入口,此方法也只在第一次載入外掛程式時調用。
  2、 調用NP_GetEntryPoints後,瀏覽器會調用NP_Initialize初始化外掛程式,NP_Initialize只在第一次調用時被瀏覽器調用,與NP_Initialize配對的是NP_Shutdown,NP_Shutdown是在關閉了所有含有該外掛程式的頁面後被瀏覽器調用,在生命週期內也只被調用一次
  3、 調用NP_Initialize後,瀏覽器會調會NPP_New來建立一個外掛程式執行個體,每開啟一個頁面都會調用NPP_New一次來建立一個外掛程式執行個體,與NPP_New配對的是NPP_Destory,在每關閉一個頁面都會調用NPP_Destory來釋放NPP_New建立的執行個體
  4、 調用NP_Initialize後,一般會調用NPP_SetWindow來調置視窗,對於沒有視窗的外掛程式當然不用調用。
註:Firefox外掛程式開發的sdk劃分為兩類介面,一類是與外掛程式相關的,以NPP或者NP開頭的;一類是與瀏覽器相關的,以NPN開頭的。
三、 頁面調用外掛程式的方式
 1、 通過object方式調用:與IE調用ActiveX控制項的方式一樣的,不同的是IE調用ActiveX控制項是通過ClassID來標識的,而Firefox的控制項是通過MIME的值來標識。
 2、 通過embed方式調用:與object方式類似,但操作方面簡單一些
四、 外掛程式與頁面的資訊傳遞
外掛程式與頁面的資訊是通過外掛程式的介面與JS進行資訊傳遞。在Firefox外掛程式有一類介面可以直接讀取頁面的JS函數,並從函數中擷取相應的值或者調置相關的值。
具體的例子有時間再加上,現在還在頭大中。。。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.