XUL_教程/1-1_引言

  • 版本网址缩略名: XUL_教程/1-1_引言
  • 版本标题: 引言
  • 版本 id: 273006
  • 创建于:
  • 创建者: 宋晓光
  • 是否是当前版本?
  • 评论 7 words added, 5 words removed

修订内容

{{ Next("cn/XUL_教程/1-2_XUL的结构") }}

本教程将引导你学习XUL语言(XML界面描述语言)--一种描述应用程序用户界面(UI)的跨平台语言。

本教程示例创建一个简单的查找文件的程序,类似Mac机上的Sherlock或者Windows上面的查找文件对话框。需要注意的是:本教程仅仅是创建了用户界面,并没有实现实际的查找文件操作。修改查找文件对话框的地方段落左边有一条蓝线。你可以以此来查看这些章节。

什么是XUL及为什么创建这门语言?

创建XUL(发音为"zool",与"cool"押韵)是为了让Mozilla浏览器的开发更容易更快捷。它是一种XML语言,因此XML的所有特性也适用于XUL。

在构建跨平台软件的时候,很多应用程序都需要去开发某些平台的特定功能,这无疑耗费了时间和支出。过去已经开发出了一定数量的跨平台的解决方案。如Java,可移植性是它的主要卖点。XUL就是为构建可移植的用户界面而设计的。构建一个应用程序,即便针对一个平台,也要耗费很长的时间。编译和调试所需要的时间可能很多。而使用XUL,界面可以很快速、轻易的执行或修改。

XUL拥有所有其它XML语言的优点。例如XHTML或其它XML语言像MathML或者SVG可以插入到里面。而且,使用XUL显示的文本更容易本地化,也就是说很容易就能将它们翻译为其它语言。

哪些类型的用户界面可以使用XUL?

XUL可以创建在现代图形界面中使用的绝大多数元素。列举一些可以创建的元素如下:

  • 输入控制如文本框和单选框
  • 带有按钮或其它内容的工具栏
  • 菜单栏或弹出菜单栏上的菜单
  • TAB对话框
  • 树视图,用于层次型或表格型信息
  • 快捷键

显示内容可以由XUL文件内容创建,或者是由数据源来的数据进行创建。在Mozilla中,使用数据源的有用户邮箱,书签和搜索结果。菜单内容,树状结构以及其它元素可以由这些数据填充,抑或由你自定义在RDF的数据填充。

有几种情况你可能会使用XUL:

  • Firefox扩展--给浏览器自身添加各种功能的扩展,常用形式有:浏览器用户界面的附加工具条,上下文菜单,或者用户定制等等。要完成这个功能使用的XUL特性被称为覆盖(overlay),它将一个源里面提供的UI(本例中,Firefox浏览器),与扩展里面的UI进行合并。扩展也可以应用于其它基于Mozilla的产品例如Thunderbird。
  • 独立可执行模式的XULRunner应用程序--XULRunner是Mozilla平台的一个打包的版本,它允许创建独立运行的XUL应用程序。运行这些程序不需要浏览器,因为它们拥有自己的可执行文件。
  • XUL包--介于以上两者之间。其它两种都是应用程序,都以作为扩展的方式进行创建,它们更似一个独立窗口运行的独立应用程序。XUL包在该种情况下用到:不想使用完整XULRunner应用程序的大尺寸,同时也不介意安装Mozilla浏览器来运行程序。
  • 远程XUL应用程序--也可以将XUL代码放置在WEB服务器上,使用浏览器打开,如同打开其它的WEB页面一样。但是这种方式有所限制,出于安全方面的考虑,会限制一些类型的操作,如打开其它窗口。

前三种类型都需要在客户机上有安装操作。但这些类型的应用程序运行没有安全限制,例如它们可以访问本地的文件并读写参数。对于扩展,应用程序需要使用的XUL文件及关联的脚本和图片需要被打包进一个独立的文件,用户下载并安装。Mozilla应用程序如Firefox提供了一个扩展管理器,允许直接将这些包进行安装而无需写大量复杂的代码。

也可以直接从文件系统或从远程WEB页面打开XUL文件;但这样有部分原本可以进行的操作会被限制,部分XUL会无效。当然,要从远程站点读取XUL内容,WEB服务器需要设置发送XUL文件类型为"application/vnd.mozilla.xul+xml"。XUL通常存储在以.xul为扩展名的文件中。可以通过Mozilla直接打开XUL文件,如同打开其它文件一样--从文件菜单使用打开文件命令或直接在地址栏里面输入URL地址。

使用本教程我需要懂些什么?

你需要懂得HTML语言,至少一些基础的XML和CSS知识。头脑中记住以下几条要点:

  • XUL元素及属性都应该以小写标注,而XML是大小写敏感的(不同于HTML)
  • XUL中的属性值必须放在引号中,即使它们是数字。
  • XUL文件通常被分成4个文件,它们分别用于布局和元素,样式声明,实体声明(用于本地化)以及脚本。另外,可能还有其它文件,用于图片或平台特定数据。

XUL在Mozilla和基于Gecko引擎的浏览器上都被支持,如Netscape 6或更新的Mozilla Firefox。由于XUL语法可能随时间推移会有不同的变化,你可能需要获取最新版的示例才能正常运行。绝大多数示例可以在Mozilla 1.0或更新版中正常运行。XUL在Firefox和其它浏览器中运行相当类似,尽管有一些特定的差异如自定义工具栏的支持。

尽管本教程试图涵盖更多的XUL功能,但是,并非所有的特征都列举出来了。当你熟练掌握XUL后,你可以使用XUL Reference去查找某些元素的其它特性。

{{ Next("XUL Tutorial:XUL Structure") }}

{{ languages( { "de": "de/XUL_Tutorial/Einfuehrung", "es": "es/Tutorial_de_XUL/Introducci\u00f3n", "ja": "ja/XUL_Tutorial/Introduction", "pl": "pl/Kurs_XUL/Wprowadzenie", "zh-cn": "cn/XUL_\u6559\u7a0b/\u5f15\u8a00" } ) }}

修订版来源

<p>{{ Next("cn/XUL_教程/1-2_XUL的结构") }}</p>
<p>本教程将引导你学习<abbr title="XML User Interface Language">XUL</abbr>语言(XML界面描述语言)--一种描述应用程序用户界面(UI)的跨平台语言。</p>
<p>本教程示例创建一个简单的查找文件的程序,类似Mac机上的Sherlock或者Windows上面的查找文件对话框。需要注意的是:本教程仅仅是创建了用户界面,并没有实现实际的查找文件操作。修改查找文件对话框的地方段落左边有一条蓝线。你可以以此来查看这些章节。</p>
<h3 name=".E4.BB.80.E4.B9.88.E6.98.AFXUL.E5.8F.8A.E4.B8.BA.E4.BB.80.E4.B9.88.E5.88.9B.E5.BB.BA.E8.BF.99.E9.97.A8.E8.AF.AD.E8.A8.80.EF.BC.9F">什么是XUL及为什么创建这门语言?</h3>
<p>创建XUL(发音为"zool",与"cool"押韵)是为了让Mozilla浏览器的开发更容易更快捷。它是一种<abbr title="Extensible Markup Language">XML</abbr>语言,因此XML的所有特性也适用于XUL。</p>
<p>在构建跨平台软件的时候,很多应用程序都需要去开发某些平台的特定功能,这无疑耗费了时间和支出。过去已经开发出了一定数量的跨平台的解决方案。如Java,可移植性是它的主要卖点。XUL就是为构建可移植的用户界面而设计的。构建一个应用程序,即便针对一个平台,也要耗费很长的时间。编译和调试所需要的时间可能很多。而使用XUL,界面可以很快速、轻易的执行或修改。</p>
<p>XUL拥有所有其它XML语言的优点。例如XHTML或其它XML语言像<abbr title="Math Markup Language">MathML</abbr>或者<abbr title="Scalable Vector Graphics">SVG</abbr>可以插入到里面。而且,使用XUL显示的文本更容易本地化,也就是说很容易就能将它们翻译为其它语言。</p>
<h3 name=".E5.93.AA.E4.BA.9B.E7.B1.BB.E5.9E.8B.E7.9A.84.E7.94.A8.E6.88.B7.E7.95.8C.E9.9D.A2.E5.8F.AF.E4.BB.A5.E4.BD.BF.E7.94.A8XUL.EF.BC.9F">哪些类型的用户界面可以使用XUL?</h3>
<p>XUL可以创建在现代图形界面中使用的绝大多数元素。列举一些可以创建的元素如下:</p>
<ul> <li>输入控制如文本框和单选框</li> <li>带有按钮或其它内容的工具栏</li> <li>菜单栏或弹出菜单栏上的菜单</li> <li>TAB对话框</li> <li>树视图,用于层次型或表格型信息</li> <li>快捷键</li>
</ul>
<p>显示内容可以由XUL文件内容创建,或者是由数据源来的数据进行创建。在Mozilla中,使用数据源的有用户邮箱,书签和搜索结果。菜单内容,树状结构以及其它元素可以由这些数据填充,抑或由你自定义在<abbr title="Resource Description Framework">RDF</abbr>的数据填充。</p>
<p>有几种情况你可能会使用XUL:</p>
<ul> <li>Firefox扩展--给浏览器自身添加各种功能的扩展,常用形式有:浏览器用户界面的附加工具条,上下文菜单,或者用户定制等等。要完成这个功能使用的XUL特性被称为<strong>覆盖(overlay)</strong>,它将一个源里面提供的UI(本例中,Firefox浏览器),与扩展里面的UI进行合并。扩展也可以应用于其它基于Mozilla的产品例如Thunderbird。</li>
</ul>
<ul> <li>独立可执行模式的XULRunner应用程序--XULRunner是Mozilla平台的一个打包的版本,它允许创建独立运行的XUL应用程序。运行这些程序不需要浏览器,因为它们拥有自己的可执行文件。</li>
</ul>
<ul> <li>XUL包--介于以上两者之间。其它两种都是应用程序,都以作为扩展的方式进行创建,它们更似一个独立窗口运行的独立应用程序。XUL包在该种情况下用到:不想使用完整XULRunner应用程序的大尺寸,同时也不介意安装Mozilla浏览器来运行程序。</li>
</ul>
<ul> <li>远程XUL应用程序--也可以将XUL代码放置在WEB服务器上,使用浏览器打开,如同打开其它的WEB页面一样。但是这种方式有所限制,出于安全方面的考虑,会限制一些类型的操作,如打开其它窗口。</li>
</ul>
<p>前三种类型都需要在客户机上有安装操作。但这些类型的应用程序运行没有安全限制,例如它们可以访问本地的文件并读写参数。对于扩展,应用程序需要使用的XUL文件及关联的脚本和图片需要被打包进一个独立的文件,用户下载并安装。Mozilla应用程序如Firefox提供了一个扩展管理器,允许直接将这些包进行安装而无需写大量复杂的代码。</p>
<p>也可以直接从文件系统或从远程WEB页面打开XUL文件;但这样有部分原本可以进行的操作会被限制,部分XUL会无效。当然,要从远程站点读取XUL内容,WEB服务器需要设置发送XUL文件类型为"application/vnd.mozilla.xul+xml"。XUL通常存储在以<code>.xul</code>为扩展名的文件中。可以通过Mozilla直接打开XUL文件,如同打开其它文件一样--从<strong>文件</strong>菜单使用<strong>打开文件</strong>命令或直接在<strong>地址栏</strong>里面输入URL地址。</p>
<h3 name=".E4.BD.BF.E7.94.A8.E6.9C.AC.E6.95.99.E7.A8.8B.E6.88.91.E9.9C.80.E8.A6.81.E6.87.82.E4.BA.9B.E4.BB.80.E4.B9.88.EF.BC.9F">使用本教程我需要懂些什么?</h3>
<p>你需要懂得<abbr title="HyperText Markup Language">HTML</abbr>语言,至少一些基础的XML和<abbr title="Cascading Style Sheets">CSS</abbr>知识。头脑中记住以下几条要点:</p>
<ul> <li>XUL元素及属性都应该以小写标注,而XML是大小写敏感的(不同于HTML)</li> <li>XUL中的属性值必须放在引号中,即使它们是数字。</li> <li>XUL文件通常被分成4个文件,它们分别用于布局和元素,样式声明,实体声明(用于本地化)以及脚本。另外,可能还有其它文件,用于图片或平台特定数据。</li>
</ul>
<p>XUL在Mozilla和基于Gecko引擎的浏览器上都被支持,如Netscape 6或更新的Mozilla Firefox。由于XUL语法可能随时间推移会有不同的变化,你可能需要获取最新版的示例才能正常运行。绝大多数示例可以在Mozilla 1.0或更新版中正常运行。XUL在Firefox和其它浏览器中运行相当类似,尽管有一些特定的差异如自定义工具栏的支持。</p>
<p>尽管本教程试图涵盖更多的XUL功能,但是,并非所有的特征都列举出来了。当你熟练掌握XUL后,你可以使用<a href="/cn/XUL_Reference" title="cn/XUL_Reference">XUL Reference</a>去查找某些元素的其它特性。</p>
<p>{{ Next("XUL Tutorial:XUL Structure") }}</p>
<p>{{ languages( { "de": "de/XUL_Tutorial/Einfuehrung", "es": "es/Tutorial_de_XUL/Introducci\u00f3n", "ja": "ja/XUL_Tutorial/Introduction", "pl": "pl/Kurs_XUL/Wprowadzenie", "zh-cn": "cn/XUL_\u6559\u7a0b/\u5f15\u8a00" } ) }}</p>
恢复到这个版本