2018.06.14css
咱們小組最初只准備開發運行在google上的知乎插件,但咱們通過調研發現還有一大部分用戶是使用的火狐瀏覽器,因此咱們也準備製做火狐插件。如下是我學習了部分火狐插件製做知識後的總結。html
在官網上了解到,火狐的Extension和Plugin是兩種概念的東西:chrome
Extension就是一個zip包,裏面有規定的一些必要文件。這個能夠下載幾個插件看一下他們的目錄結構就行了。我下載了一個 QuickNote,看了一下,主要包括一個install.rdf(安裝包相關信息和文件資源路徑等配置)、chrome.manifest(設置各類XUL文件路徑以及其餘的一些資源文件路徑)、chrome文件夾(裏面放着插件的全部源文件),不過chrome文件夾裏面的文件我尚未過多研究。瀏覽器
Plugin好像是另一碼事了,在Mozilla Developer Center的Plugin開發介紹文中有這麼一句:Plugins are different from extensions, which modify or enhance the functionality of the browser itself. Plugins are also different from search plugins, which plug additional search engines in the search bar. (插件與擴展不一樣,它更改或者改善了瀏覽器自身的功能。插件與搜索插件又不一樣,搜索插件在搜索工具欄上添加了額外的搜索引擎。)工具
個人理解是,插件可讓你在FF中使用本身的View來展現、用本身編寫的二進制文件來作某些事情,不單單是利用FF自身支持的一些特性和功能。而擴展相對來講就不須要這些東西,只利用FF的開發API就行了。學習
經過研究別人寫的Extension,裏面有不少js、css、images、html,這些還容易理解,可是多了一些後綴名爲xul的文件。看來想開發Extension,這個文件須要好好研究一下。所以,我明天的學習計劃就是搞清楚XUL是什麼以及看懂它。ui
2018.06.15搜索引擎
什麼是XUL?這個連接給出了詳細的介紹:http://www.xulplanet.com/tutorials/whyxul.htmlgoogle
看完後,我知道了XUL原來是一個支持多種WEB技術的、基於XML的界面開發語言。它既能夠在遠程執行,也能夠安裝到本地執行。插件
在XUL中內置了不少界面元素,如菜單、按鈕、分頁等等,這樣就不須要本身編寫不少JS來維護和控制不少界面元素了。並且,這些界面是按照當時的OS外觀來展示的,好比同一個按鈕,在MacOS上和Windows上看起來就不同。另外XUL也容許本身使用JS和CSS來定製本身的個性化界面。總之一句話,XUL的主要做用就是用來展示Extension的用戶交互界面的。