Chrome 的插件(Plugin)與擴展(Extension)有什麼區別?

插件和擴展哪個能實現的功能多?學習他們分別需要掌握什麼語言?


雖然差別很清楚,但是用語言表達出來,真不好說。

"擴展"和"插件",其實都是軟體組件的一種形式,Chrome 只不過是把兩種類型的組件分別給與了專有名稱,一個叫"擴展",另一個叫"插件"。

  • 擴展(Extension),指的是通過調用 Chrome 提供的 Chrome API 來擴展瀏覽器功能的一種組件,工作在瀏覽器層面,使用 HTML + Javascript 語言開發[*]。比如著名的 Adblock plus。
  • 插件(Plug-in),指的是通過調用 Webkit 內核 NPAPI 來擴展內核功能的一種組件,工作在內核層面,理論上可以用任何一種生成本地二進位程序的語言開發,比如 C/C++、Delphi 等。比如Flash player 插件,就屬於這種類型。一般在網頁中用 & 或者 & 標籤聲明的部分,就要靠插件來渲染。

至於哪種功能多的問題,這個不能比較,各有側重。如果你想實現一個自動統計你上過的網站以及各自時間的功能,就要用擴展技術;如果你要實現一個讓你的瀏覽器可以渲染 AutoCAD 文件的功能,就要用插件技術。

註:

* Chrome 擴展本身也支持包含 Plug-in 模塊,這部分可以使用 C/C++ 等語言開發。比如 web QQ 的截圖擴展,就是用了這項功能。


補充一點,最直觀的,可以從chrome的管理上看到:

插件管理頁:chrome://plugins/

擴展管理頁:chrome://extensions/

PS:可以查看官方說明: 插件 - Chrome幫助擴展程序 - Chrome幫助


如果把瀏覽器比作操作系統,擴展就好比工具類應用程序,插件則好比驅動程序。


簡單理解:

.crx是擴展,.exe是插件

複雜點:

擴展是在遊覽器原有功能上進行開發,插件是添加新的功能(比如flash)


plugin 是偏底層的應用。extension 則偏上層。


舉個栗子!

你要參加演出了,是一段舞蹈表演,地點在國家大劇院!國家大劇院提供了舞台、燈光以及音響等設備,你將這些提供的設施搭配使用,比如燈光亮幾秒滅幾秒,音響開多大聲音來搭配你的舞蹈,舞台的升降台什麼時候升起來什麼時候降下去,這些問題你需要設計,這就屬於拓展

而你的舞蹈特別高大上,國家大劇院的舞台太low了,燈光太少了,音響太差了以至於你無法完美展現你的舞蹈,然後你親自設計了一個舞台,然後花錢買了一套音響和燈光給國家大劇院換上,這樣舞台升降速度快了,燈光搭配起來不傷眼了,音響聽得觀眾都亢奮了,你的舞蹈淋漓盡致,這種做法叫做插件。

簡而言之:拓展就是利用瀏覽器提供給你的功能,通過自己搭配來實現一些功能組合,通常利用JavaScript這樣的腳本語言來完成,只要調用瀏覽器提供的介面即可。而插件是瀏覽器提供的功能已經不能滿足你的組合了,你需要利用C++這樣的編譯語言來拓展瀏覽器可以提供的功能,來供你調用。一句話概括,插件功能強大但是製作麻煩,拓展功能受限但是製作簡單。就醬!


插件(Plugin)與擴展程序(Extension):像Flash playerChrome PDF Viewer 、Google Update之類的瀏覽器插件是瀏覽器的底層應用,可用chrome://plugins/查看;而擴展則是為了增強瀏覽器某項特定功能或者提高效率方便使用的組件


推薦閱讀:

谷歌有哪些使用技巧?
Chrome 流行擴展(add-ons)有哪些?
Chrome 有哪些比較經典的主題?
Proxy Switchy這個谷歌瀏覽器插件到底怎麼設置怎麼用,可不可以提供一個靠譜的教程啊
Chrome的擴展程序如何做到在用戶不知情的情況下自動安裝,是否合乎規則?

TAG:Chrome擴展程序 |