XUL是Mozilla项目的一部分。它能够让你以跨平台的方式指定用户界面(UI),并将脚本附加到事件上。XUL被Mozilla的Web浏览器用来控制其UI,并能够剥去外层。XUL是基于XML的,它利用JavaScript来处理事件。有了XUL,你可以跨越任何平台创建统一的图形用户界面(GUI),只要Mozilla能在这些平台上使用。使用XUL创建的UI会保留其在主平台上的外观和操作体验。
XUL的应用程序需要一个专用的目录结构。这个文件结构能够被放进JAR文件里,从而让其发布更加容易。(还有一个安装过程,但是由于篇幅的限制,我们就不在本文讨论这个问题了。)
XUL的应用程序通常都安装在chrome目录下,但是也能够被安装到其他任何地方,只要它们被正确地添加到注册表里。这个应用程序的注册表被叫做“installed-chrome.txt”。
下面就是该目录结构。要注意,我已经让它尽可能地简单了,(实际的)目录结构可能要比下面所显示的更多更复杂。
xuldemo
|
content
|
xuldemo
|
locale
|
en-US
|
xuldemo
我们的示例应用程序叫做xuldemo,它也是根目录的名称。Content子目录是放有GUI描述和脚本的地方。Locale这个目录就是本地化的字符串驻留在应用程序里的位置。
XUL的主旨就是要让应用程序的本地化更容易,因此你一般都会使用实体来替换XUL文件里的字符串。XUL应用程序由很多XUL文件、rdf文件,以及java脚本文件组成。一个基本的XUL文件看起来就像下面的一样:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window
id="XULDemo"
title="XUL Demo"
orient="horizontal"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
</window>
这段代码只是简单地创建一个空白窗口。为了给这个窗口加入一些小部件,你就要把它们加到窗口的开始和结束标签之间。有很多小部件可以供使用,但是我只会说明其中一个,因为它们的用法都非常简单。
<textbox id="MainText" multiline="true"/>
上面插入到窗口标签之间的这行(代码)生成了一个多行的文本框。如果你希望这个文本框是单行的,那么就要去掉multiline这个属性。
为了向应用程序加入脚本,你就要把下面这一行(代码)再次加到XUL文件的窗口标签之间。
<script type="application/x-javascript" src="xuldemo.js"/>
这一行(代码)只是简单地把JavaScript加到了应用程序里,而没有将它同任何事件关联起来。将代码和事件关联起来(的工作),其大部分的东西都和HTML的很类似。
<button id="btn-close" label="Close" command="closeWindow();"/>
这个xuldemo.js文件看起来就像下面这样。
function closeWindow()
window.close();
一旦应用程序的代码完成,你就需要在installed-chrome.txt文件里加入一行(代码)。下面这行(代码)会完成其任务。
content,install,url,resource:/chrome/xuldemo/content/xuldemo/
(这当然是在假设xuldemo应用程序被安装在chrome目录下的前题下。)
Mozilla不仅仅是一个浏览器——它在设计上就是一个完整的平台。你可以使用XUL来创建增强了的Web应用程序,或者创建单独的桌面应用程序。
文本作者Mike Owens是一名Allscripts Healthcare解决方案的软件工程师,他从事软件行业已逾八年。