XUL教程:什么是XBL?

原文:http://www.xulplanet.com/tutorials/xultu/introxbl.html

原文作者:Neil Deakin

以下为对原文的翻译:

什么是XBL?

XUL有一个姐妹语言,叫做XBL,全称是可扩展绑定语言(eXtensible Bindings Language),这门语言的主要作用就是用来定义XUL组件的行为模式。

绑定

你可以使用XUL定义一个应用程序界面的布局。你也可以通过设置样式来定制这些元素的外观。你还可以通过修改样式来建立新的皮肤。类似滚动条或者复选框这类经常会被使用的界面元素,你可以通过修改样式表或者设置属性来修改他们的基本外观。但是XUL绝不会允许你修改这些元素的工作方式。比如说,你要修改滚动条的作用,这是无法用XUL实现的,你需要XBL。

一个典型的XBL文件包括一组绑定列表。每一个绑定项都描述了一个XUL组件的行为模式。比如说,一个绑定项可能会关联到一个滚动条,而且描述了这个滚动条所具有的属性和方法,当使用XUL创建了滚动条以后,自动就会具有XBL描述好的属性和方法。

和XUL一样,XBL也是使用XML来描述的,所以和XUL有着相似的语法规则。下面的示例展示了一个典型的XBL文件的基本骨架:

<?xml version="1.0"?>
<bindings xmlns="http://www.mozilla.org/xbl">
<binding id="binding1">
<!-- content, property, method and event descriptions go here -->
</binding>
<binding id="binding2">
<!-- content, property, method and event descriptions go here -->
</binding>
</bindings>

bindings元素是XBL文件的根元素,它包含了一个或者多个binding元素。每一个bingding元素都描述了一个绑定项。id属性用于标识每个绑定项,就像上面的例子所展示的那样。这个例子有两个绑定项,一个叫做binding1,一个叫做 binding2。一个可能会被附加到滚动条上,另外一个可能会附加到菜单项上。每个绑定项都可以附加到任何XUL元素上。通过使用class属性,你就可以没有限制的使用绑定项。注意上面例子中bindings元素的命名空间,这个命名空间说明我们正在使用XBL的语法。

你可以通过CSS属性-moz-binding,将一个元素关联到一个XBL文件中的指定项上。比如下面这段代码:

scrollbar {
-moz-binding: url('chrome://findfile/content/findfile.xml#binding1');
}

URL表示绑定项“binding1”在“chrome://findfile/content/findfile.xml”这个文件中。 “#binding1”这种在编号前面加井号的语法用来表示特定的绑定项,就像你要指向一个HTML文件中的锚一样。你需要把所有的绑定项放到一个文件中。上面例子的结果,就是所有的scrollbar元素都会具有你通过“binding1”定义的行为模式。如果你在-moz-binding的url后面没有使用井号定义锚点,那么系统会自动使用这个XBL文件中的第一个绑定项。

在一个绑定项中,你可以定义五种类型的元素:

1. 内容(Content):Content下面的子元素将被填充到被绑定的目标元素下面。

2. 属性(Properties):属性将被添加到元素上,而且可以通过脚本访问。

3. 方法(Methods):方法将被添加到元素上,而且也可以通过脚本直接访问。

4. 事件(Events):可以为元素添加键盘和鼠标等事件,同时在绑定项中可以添加事件的默认处理脚本。当然你也可以额外定义新的事件。

5. 样式(Styles):可以通过XBL为元素自定义新的样式。

时间: 2025-01-07 16:15:42

XUL教程:什么是XBL?的相关文章

XUL教程:为XBL元素定义特性

原文地址:http://www.xulplanet.com/tutorials/xultu/xblatin.html 原文作者:Neil Deakin 以下是对原文的翻译: XBL特性继承(XBL Attribute Inheritance) 在这个小节我们将学习特性的继承方式. 继承的特性(Inherited Attributes) XBL可以让我们把复杂组件的实际实现方法隐藏起来.但是用目前为止介绍的功能,我们只能使用同样的方法建立匿名内容.如果我们可以通过为绑定元素增加特性,来修改内部的元

XUL教程:为XBL元素定义属性

原文标题:XUL Tutorial - Bindings - Adding Properties 原文作者:Neil Deakin 原文地址:http://www.xulplanet.com/tutorials/xultu/xblprops.html 下面是对原文的翻译: 添加属性(Adding Properties) 在这一节,我们将学习怎样为XBL元素增加自定义属性. XBL接口 通过JavaScript和DOM,可以对元素的属性进行访问.在XBL中,你可以为元素自定义属性,当然也可以为元素

XUL教程:对XBL元素进行扩展

本文配套源码 原文标题:XUL Tutorial - Bindings - XBL Inheritance 原文作者:Neil Deakin 原文地址:http://www.xulplanet.com/tutorials/xultu/xblinherit.html 下面是对原文的翻译: 在这一小节,我们将学习如果对已有的XBL定义进行扩展. 继承(Inheritance) 有时你要建立的组件可能和现有的某个组件很相似,比如你想建立一个可以弹出菜单的按钮,一种方法是重复造车轮,复制现有的butto

XUL教程:为XBL元素定义方法

原文标题:XUL Tutorial - Bindings - Adding Methods 原文作者:Neil Deakin 原文地址:http://www.xulplanet.com/tutorials/xultu/xblmethods.html 以下是对原文的翻译: 接下来我们学习如何向XBL中定义的元素添加方法. 方法(Methods) 既然可以向XBL定义的元素添加属性,自然就可以添加方法,这些方法可以在脚本中调用.方法表现为对象的函数,比如"window.open()".你可

XUL教程:为XBL元素定义内容

本文配套源码 原文:http://www.xulplanet.com/tutorials/xultu/xblcontent.html 原文作者:Neil Deakin 下面是对原文的翻译: 匿名内容(Anonymous Content) 在这一小节,我们将探讨如何使用XBL建立内容. XBL Content XBL可以被用来向一个元素中添加一组元素.在XUL中只需要定义最外层的元素,而里面的元素都可以在XBL中定义.对于开发那些由一系列元素组成 的组件(widget)来说,这是再好不过的功能,只

XUL教程:为XBL元素定义事件

原文标题:XUL Tutorial - Bindings - Adding Events 原文作者:Neil Deakin 原文地址:http://www.xulplanet.com/tutorials/xultu/xblevents.html 下面是对原文的翻译: 这一节,我们来学习如何向XBL元素中添加事件处理程序. 事件处理程序(Event Handlers) 正如你所期望的,匿名内容里的元素支持鼠标点击.键盘按下等事件.但你可能会想采用一种特别方式触发事件和处理程序.如果需要,你可以向匿

XUL教程:实例构建XBL组件

本文配套源码 原文标题:XUL Tutorial - Bindings - XBL Example 原文作者:Neil Deakin 原文地址:http://www.xulplanet.com/tutorials/xultu/xblex.html 下面是对原文的翻译: 这节将介绍一个XBL的完整例子. 幻灯片元素(A Slideshow Element) 让我们构建一个完整的使用XBL元素的例子,这是一个保存了一组对象的组件,而每页只会显示其中一个.置于下方的导航按钮用于循环显示这些对象,而在一

XUL教程

以下是对原文的翻译: 在这一节,我们来搜索一下Mozilla中还有哪些数据源,并学习如果使用自定义的RDF文件来作为数据源. 更多的Mozilla数据源(Other Mozilla Datasources) Mozilla提供了很多数据源,所有的这些数据源的工作方式和书签数据源都是很相似的,只是字段不同而已.下面通过一些实例展示了其中的几个. 历史记录(The History List) 历史记录数据源可以让用户访问网页的浏览历史记录列表,在这个列表中包含用户最近访问的网页的地址.可以通过rdf

XUL 用户界面语言介绍

XUL[1]是英文"XML User Interface Language"的首字母缩写.它是为了支持Mozilla系列的应用程序(如Mozilla Firefox和Mozilla Thunderbird)而开发的用户界面标示语言.顾名思义,它是一种应用XML来描述用户界面的标示语言. XUL是开放标准,重用了许多现有的标准和技术[2],包括CSS.JavaScript.DTD和RDF等.所以对于有网络编程和设计经验的人士来说,学习XUL比学习其他用户界面标示语言相对简单. 使用XUL