先从Firefox说起吧, 在https://developer.mozilla.org/zh-CN/ 上Firefox提供了众多的教材来帮助新手进入到web开发的队伍。
Firefox开发分插件和扩展两种形式的东东,要细分的话,扩展(externtion or add-on)是利用Firefox提供的API来增强其功能,比如各种书签同步的扩展。而插件则是专门的程序实现的功能,一般是Firefox自身无法完成的,因此需要通过插件的功能来增加浏览器的功能,比如常用的支付宝插件、adobe的pdf生成插件。
讨论这里,我们需要根据情况选择是开发扩展还是开发插件。这样就需要判断Firefox提供了哪些API来完成什么功能,判断实现一个扩展是否能完成所要的需求。如果不能就需要实现一人插件。
在https://developer.mozilla.org/zh-CN/addons ,firefox提供了开发adons的各种API说明和开发工具帮助开发者快速的开发出一个adons。说到开发addons,就不得不学习XUL,XUL是一个支持多种WEB技术的、基于XML的界面开发语言。在XUL中内置了很多界面元素,如菜单、按钮、分页等等,这样就不需要自己编写很多JS来维护和控制很多界面元素了。而且,这些界面是按照所在的OS外观来展现的,这样就提高了移植性。另外XUL也允许用JS和CSS来定制个性化界面。XUL的主要作用就是用来展现Extension的UI的。
https://developer.mozilla.org/En/XUL 这个网址可以帮助了解XUL的细节。
https://addons.mozilla.org/en-US/developers/tools/builder 提供了一个生成addons的向导,只用点点鼠标即可生成addons。
当然在开发之前,最好先学习一些HTML/XHTML/XML/CSS/Javascript的东西,这样理解起来会更快。
在http://www.w3school.com.cn/ 提供了上面所列的要学习的基础知识的教程。
首先对HTML/XHTML/XML/CSS来做些说明。
HTML是浏览器用来格式化网页显示的语言,当然为了达到相应的显示效果,人也需要掌握这门语言,这样才能让浏览器正确识别。HTML主要使用各种标签和对应的属性来告诉浏览器如何显示。支持有限的用户交互和动态效果。然而随着HTML的演进,这个语言吸收了一些不规范的东西,导致开发及浏览器的兼容性难度加大。因此XHTML应运而生,可以说XHTML本身就是HTML,它对HTML的语法及使用进行了规范。打个比方,HTML是一群写字不规范的家伙,而XHTML则是要求这这群人都用工整的字来写,不工整就是错误。XML则是一种元语言,有许多用途,它可以用来描述数据,也可以用来定义新的标记语言。XHTML正是借鉴XML良好的结构性来要求HTML的。刚才说到HTML的不规范,它本身后来包含了一些页面布局的标签,这导致HTML中硬编码了页面的格式,当页面在不同的设备上显示时,需要重新编辑HTML源文件,十分不方便。于是人们把页面布局等这些东西拿出来,用CSS的方法实现,CSS本身是一个文件,它与HTML源文件分离,这样就方便HTML的编写和具体的显示了。
下面定义了所有HTML5支持的标签及各个标签的定义:
| 标签 | 描述 | 4 | 5 |
|---|---|---|---|
| <!--...--> | 定义注释。 | 4 | 5 |
| <!DOCTYPE> | 定义文档类型。 | 4 | 5 |
| <a> | 定义超链接。 | 4 | 5 |
| <abbr> | 定义缩写。 | 4 | 5 |
| <acronym> | HTML 5 中不支持。定义首字母缩写。 | 4 | |
| <address> | 定义地址元素。 | 4 | 5 |
| <applet> | HTML 5 中不支持。定义 applet。 | 4 | |
| <area> | 定义图像映射中的区域。 | 4 | 5 |
| <article> | 定义 article。 | 5 | |
| <aside> | 定义页面内容之外的内容。 | 5 | |
| <audio> | 定义声音内容。 | 5 | |
| <b> | 定义粗体文本。 | 4 | 5 |
| <base> | 定义页面中所有链接的基准 URL。 | 4 | 5 |
| <basefont> | HTML 5 中不支持。请使用 CSS 代替。 | 4 | |
| <bdo> | 定义文本显示的方向。 | 4 | 5 |
| <big> | HTML 5 中不支持。定义大号文本。 | 4 | |
| <blockquote> | 定义长的引用。 | 4 | 5 |
| <body> | 定义 body 元素。 | 4 | 5 |
| <br> | 插入换行符。 | 4 | 5 |
| <button> | 定义按钮。 | 4 | 5 |
| <canvas> | 定义图形。 | 5 | |
| <caption> | 定义表格标题。 | 4 | 5 |
| <center> | HTML 5 中不支持。定义居中的文本。 | 4 | |
| <cite> | 定义引用。 | 4 | 5 |
| <code> | 定义计算机代码文本。 | 4 | 5 |
| <col> | 定义表格列的属性。 | 4 | 5 |
| <colgroup> | 定义表格列的分组。 | 4 | 5 |
| <command> | 定义命令按钮。 | 5 | |
| <datalist> | 定义下拉列表。 | 5 | |
| <dd> | 定义定义的描述。 | 4 | 5 |
| <del> | 定义删除文本。 | 4 | 5 |
| <details> | 定义元素的细节。 | 5 | |
| <dfn> | 定义定义项目。 | 4 | 5 |
| <dir> | HTML 5 中不支持。定义目录列表。 | 4 | |
| <div> | 定义文档中的一个部分。 | 4 | 5 |
| <dl> | 定义定义列表。 | 4 | 5 |
| <dt> | 定义定义的项目。 | 4 | 5 |
| <em> | 定义强调文本。 | 4 | 5 |
| <embed> | 定义外部交互内容或插件。 | 5 | |
| <fieldset> | 定义 fieldset。 | 4 | 5 |
| <figcaption> | 定义 figure 元素的标题。 | 5 | |
| <figure> | 定义媒介内容的分组,以及它们的标题。 | 5 | |
| <font> | HTML 5 中不支持。 | 4 | |
| <footer> | 定义 section 或 page 的页脚。 | 5 | |
| <form> | 定义表单。 | 4 | 5 |
| <frame> | HTML 5 中不支持。定义子窗口(框架)。 | 4 | |
| <frameset> | HTML 5 中不支持。定义框架的集。 | 4 | |
| <h1> to <h6> | 定义标题 1 到标题 6。 | 4 | 5 |
| <head> | 定义关于文档的信息。 | 4 | 5 |
| <header> | 定义 section 或 page 的页眉。 | 5 | |
| <hgroup> | 定义有关文档中的 section 的信息。 | 5 | |
| <hr> | 定义水平线。 | 4 | 5 |
| <html> | 定义 html 文档。 | 4 | 5 |
| <i> | 定义斜体文本。 | 4 | 5 |
| <iframe> | 定义行内的子窗口(框架)。 | 4 | 5 |
| <img> | 定义图像。 | 4 | 5 |
| <input> | 定义输入域。 | 4 | 5 |
| <ins> | 定义插入文本。 | 4 | 5 |
| <keygen> | 定义生成密钥。 | 5 | |
| <isindex> | HTML 5 中不支持。定义单行的输入域。 | 4 | |
| <kbd> | 定义键盘文本。 | 4 | 5 |
| <label> | 定义表单控件的标注。 | 4 | 5 |
| <legend> | 定义 fieldset 中的标题。 | 4 | 5 |
| <li> | 定义列表的项目。 | 4 | 5 |
| <link> | 定义资源引用。 | 4 | 5 |
| <map> | 定义图像映射。 | 4 | 5 |
| <mark> | 定义有记号的文本。 | 5 | |
| <menu> | 定义菜单列表。 | 4 | 5 |
| <meta> | 定义元信息。 | 4 | 5 |
| <meter> | 定义预定义范围内的度量。 | 5 | |
| <nav> | 定义导航链接。 | 5 | |
| <noframes> | HTML 5 中不支持。定义 noframe 部分。 | 4 | |
| <noscript> | 定义 noscript 部分。 | 4 | 5 |
| <object> | 定义嵌入对象。 | 4 | 5 |
| <ol> | 定义有序列表。 | 4 | 5 |
| <optgroup> | 定义选项组。 | 4 | 5 |
| <option> | 定义下拉列表中的选项。 | 4 | 5 |
| <output> | 定义输出的一些类型。 | 5 | |
| <p> | 定义段落。 | 4 | 5 |
| <param> | 为对象定义参数。 | 4 | 5 |
| <pre> | 定义预格式化文本。 | 4 | 5 |
| <progress> | 定义任何类型的任务的进度。 | 5 | |
| <q> | 定义短的引用。 | 4 | 5 |
| <rp> | 定义若浏览器不支持 ruby 元素显示的内容。 | 5 | |
| <rt> | 定义 ruby 注释的解释。 | 5 | |
| <ruby> | 定义 ruby 注释。 | 5 | |
| <s> | HTML 5 中不支持。定义加删除线的文本。 | 4 | |
| <samp> | 定义样本计算机代码。 | 4 | 5 |
| <script> | 定义脚本。 | 4 | 5 |
| <section> | 定义 section。 | 5 | |
| <select> | 定义可选列表。 | 4 | 5 |
| <small> | 定义小号文本。 | 4 | 5 |
| <source> | 定义媒介源。 | 5 | |
| <span> | 定义文档中的 section。 | 4 | 5 |
| <strike> | HTML 5 中不支持。定义加删除线的文本。 | 4 | |
| <strong> | 定义强调文本。 | 4 | 5 |
| <style> | 定义样式定义。 | 4 | 5 |
| <sub> | 定义下标文本。 | 4 | 5 |
| <summary> | 定义 details 元素的标题。 | 5 | |
| <sup> | 定义上标文本。 | 4 | 5 |
| <table> | 定义表格。 | 4 | 5 |
| <tbody> | 定义表格的主体。 | 4 | 5 |
| <td> | 定义表格单元。 | 4 | 5 |
| <textarea> | 定义 textarea。 | 4 | 5 |
| <tfoot> | 定义表格的脚注。 | 4 | 5 |
| <th> | 定义表头。 | 4 | 5 |
| <thead> | 定义表头。 | 4 | 5 |
| <time> | 定义日期/时间。 | 5 | |
| <title> | 定义文档的标题。 | 4 | 5 |
| <tr> | 定义表格行。 | 4 | 5 |
| <tt> | HTML 5 中不支持。定义打字机文本。 | 4 | |
| <u> | HTML 5 中不支持。定义下划线文本。 | 4 | |
| <ul> | 定义无序列表。 | 4 | 5 |
| <var> | 定义变量。 | 4 | 5 |
| <video> | 定义视频。 | 5 | |
| <xmp> | HTML 5 中不支持。定义预格式文本。 | 4 |
本文介绍了如何使用Firefox提供的API开发扩展(add-ons),包括XUL的基本概念及其在扩展开发中的应用。同时,文章还概述了HTML5的支持标签及其用途,为开发者提供了全面的指导。
1438

被折叠的 条评论
为什么被折叠?



