用XUL创建用户界面

ZDNet软件频道 时间:2003-11-03 作者:ZDNet China |  我要评论()
本文关键词:
XUL是Mozilla项目的一部分。它能够让你以跨平台的方式指定用户界面(UI),并将脚本附加到事件上.XUL是基于XML的,它利用JavaScript来处理事件。
本文译自Builder.com,未经许可请勿转载

 

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解决方案的软件工程师,他从事软件行业已逾八年。




责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134