Firefox插件开发学习总结
2018.06.14
我们小组最初只准备开发运行在google上的知乎插件,但我们经过调研发现还有一大部分用户是使用的火狐浏览器,所以我们也准备制作火狐插件。以下是我学习了部分火狐插件制作知识后的总结。
在官网上了解到,火狐的Extension和Plugin是两种概念的东西:
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是什么以及看懂它。
2018.06.15
什么是XUL?这个链接给出了详细的介绍:http://www.xulplanet.com/tutorials/whyxul.html
看完后,我知道了XUL原来是一个支持多种WEB技术的、基于XML的界面开发语言。它既可以在远程执行,也可以安装到本地执行。
在XUL中内置了很多界面元素,如菜单、按钮、分页等等,这样就不需要自己编写很多JS来维护和控制很多界面元素了。而且,这些界面是按照当时的OS外观来展现的,比如同一个按钮,在MacOS上和Windows上看起来就不一样。另外XUL也允许自己使用JS和CSS来定制自己的个性化界面。总之一句话,XUL的主要作用就是用来展现Extension的用户交互界面的。