想討論chrome擴展和chrome插件區別這個話題很久了!但是遲遲沒有寫。因為我自己也沒有搞清楚這兩者之間的區別!回想當初是因為需要尋找番羽牆插件才想到去維護一個類似的插件網。我甚至問過身邊很多程序員這兩者之間的區別,說實話能說清楚的也沒有幾個。今日在論壇里看到有熱心的網友推薦這個chrome網,甚是欣慰。但是看到一位網友的回復時我才意識到我該去好好了解一下chorme擴展和chrome插件的的區別。那位網友說:這不叫“插件”,這叫“擴展”,名稱都叫不對的網站直接無視!
首先,想要直觀的去了解在chrome里插件和擴展到底有什么區別?怎么去區分時,我們只需要查看如下兩個地址就可以了!
chrome://settings/extensions 這里面的是擴展
chrome://plugins/ 這里面的是插件
其次,從英語翻譯來看,插件對應的是“Plugin”,擴展對應的是“Extension”,所以它倆背后其實是兩個完全不同的詞!
再次,從功能來看來。"擴展"和"插件",其實都是軟件組件的一種形式,Chrome 只不過是把兩種類型的組件分別給與了專有名稱,一個叫"擴展",另一個叫"插件"。
- 擴展(Extension),指的是通過調用 Chrome 提供的 Chrome API 來擴展瀏覽器功能的一種組件,工作在瀏覽器層面,使用 HTML + Javascript 語言開發[*]。比如著名的 Adblock plus。
- 插件(Plug-in),指的是通過調用 Webkit 內核 NPAPI 來擴展內核功能的一種組件,工作在內核層面,理論上可以用任何一種生成本地二進制程序的語言開發,比如 C/C++、Delphi 等。比如Flash player 插件,就屬於這種類型。一般在網頁中用 <object> 或者 <embed> 標簽聲明的部分,就要靠插件來渲染。
總的來說:拓展就是利用瀏覽器提供給你的功能,通過自己搭配來實現一些功能組合,通常利用JavaScript這樣的腳本語言來完成,只要調用瀏覽器提供的接口即可。而插件是瀏覽器提供的功能已經不能滿足你的組合了,你需要利用C++這樣的編譯語言來拓展瀏覽器可以提供的功能,來供你調用。一句話概括,插件功能強大但是制作麻煩,拓展功能受限但是制作簡單。