`

什么是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为元素自定义新的样式。

实例

当你建立自定义组件的时候,box 元素应该是再平常不过了,当然你可以使用任何元素,甚至是自定义的。我们为box 元素设置上class属性,这样你就可以为所有class为这个值得box 分配一个绑定。请看下面的例子:

XUL (example.xul

):


<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://example/skin/example.css" type="text/css"?>

<window
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul

">
  <box class="okcancelbuttons"/>
</window>

CSS (example.css):


box.okcancelbuttons {
    -moz-binding: url('chrome://example/skin/example.xml#okcancel');
}
XBL (example.xml):

<?xml version="1.0"?> <bindings xmlns="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <binding id="okcancel"> <content> <xul:button label="OK"/> <xul:button label="Cancel"/> </content> </binding> </bindings>

  这个例子建立了只有一个box的window。box元素的class属性已经赋值为“okcancelbuttons”。在样式表中声明class为okcancelbuttons的box元素都被分配了一个定义在XBL文件中的绑定。除了box元素,你还可以使用其他元素,你自定义的元素都可以。

  在下一节我们将对这个例子中XBL文件的细节进行详细解说,但现在我们可以做个小结,这个例子的结果就是两个按钮被自动添加到box里面,一个OK按钮和一个取消按钮。(译者注:绑定到哪个元素,就把content下面的内容添加到哪个元素里面)

 
分享到:
评论

相关推荐

    如何在xbl中读取分区信息.docx

    【如何在XBL中读取分区信息】 在Android系统中,特别是在高通(Qcom)平台上,启动流程涉及多个阶段,其中包括XBL(eXtended Boot Loader)。XBL是引导加载程序的一部分,负责初始化硬件并准备加载下一级引导加载...

    XBL(Exec Bin Lib)

    XBL,全称为Exec Bin Lib,是一种执行库技术,它在早期的计算机系统中起到了连接应用程序与操作系统的重要作用。这个库特别之处在于它不仅支持DOS环境,还能够跨平台运行于Linux系统,实现了不同操作系统的兼容性。...

    EIKI爱其LC-XBL20 用户手册.pdf

    EIKI爱其LC-XBL20多媒体投影机用户手册 本手册为EIKI爱其品牌的LC-XBL20多媒体投影机提供了详细的使用说明书。该投影机采用了最新的技术,具有便携、耐用、易于操作等特点,适合广泛的应用场景。 多媒体投影机的...

    XBL开发规范.pdf

    1.1 **XBL是什么** XBL是一种用于创建可重用UI组件的技术,它通过XML来定义用户界面的布局、行为和外观。XBL允许开发者将UI元素的样式、事件处理和逻辑封装在一起,形成独立的组件,便于代码复用和维护。 1.2 **...

    如何解封垃圾邮件IP方法图解(XBL,SBL,PBL,ROKSO)宣贯.pdf

    垃圾邮件IP解封方法图解(XBL,SBL,PBL,ROKSO) 本文主要介绍了如何解封垃圾邮件IP的方法,并对 Spamhaus 组织下的四种类型的黑名单进行了解释,即 XBL、SBL、PBL 和 ROKSO。 Spamhaus 是一个世界上影响最大的反垃圾...

    mozilla xbl基本用法示例

    Mozilla XBL(XML Binding Language)是一种强大的技术,用于在Firefox和其他基于Gecko的浏览器中创建可重用的用户界面组件。XBL允许开发者通过XML来定义元素的外观和行为,结合了XHTML、CSS和JavaScript的功能,...

    xbl_config(5).zip

    《xbl_config配置详解》 在IT领域,配置文件是系统、软件或服务运行不可或缺的部分。今天我们将聚焦于“xbl_config”这个特定的配置文件,深入探讨它的用途、结构和重要参数。在这个名为"xbl_config(5).zip"的...

    xbl_config.prof

    xbl_config.prof

    EIKI爱其LC-XBL21 用户手册.pdf

    EIKI爱其LC-XBL21用户手册 EIKI爱其LC-XBL21多媒体投影机用户手册是EIKI爱其品牌的产品说明书,该手册详细介绍了LC-XBL21多媒体投影机的特点、设计、网络支持、多媒体功能、安全功能等方面的知识点。 一、网络支持...

    xbl中的属性继承与事件继承实例

    总结了xbl中的继承用法,属性继承和事件继承 本资源为火狐扩展

    xbl:xbl.js - JavaScript 中的跨浏览器 XBL 2 实现

    这是 JavaScript 中的 XBL 2 实现。 除了 [ 2.0) 语言,它还包含 [ API)支持 [ 3 Selectors) 以及 [ Extensions to CSS)、[ (文档对象模型 (DOM) 级别 3 事件)和 [ 基础)。 &lt; head &gt; ... &lt; script ...

    jquery jqGrid 4 7 1 zip下载 css js plugins src

    | ellipsis xbl xml | ui jqgrid css js | i18n | grid locale en js | grid locale cn js | grid locale js | Changes txt | install txt | jquery jqGrid min js | jquery jqGrid src js | jquery 1 9 0 min js ...

    XBL in JS-开源

    使用纯跨平台JavaScript,DOM 1和CSS 1编写XBL样式的小部件的实现。

    高通手机详细过程

    详细的,从最简单的概念讲解了高通手机的开机过程和详细细节,对你的boot理解很有帮助

    ask fsk.rar_ASK和FSk调制解调 matlab_MatlabASKFSK_XBL_ask调制解调_fsk解调

    在本文中,我们将深入探讨两种常见的数字调制技术——ASK(Amplitude Shift Keying,幅度键控)和FSK(Frequency Shift Keying,频率键控),以及如何在MATLAB环境中实现这两种调制与解调的过程。...

    gaming-app

    【标题】"gaming-app" 暗示了这是一个与游戏应用相关的主题,可能是游戏软件、游戏开发工具或者与游戏优化相关的应用程序。在IT行业中,游戏应用通常涉及到多个技术领域,包括但不限于图形渲染、网络编程、游戏引擎...

    ABL计算机软件开发

    ABL计算机软件开发

    qualcomm 高通手机开机原理

    ### Qualcomm高通手机开机原理详解 #### 一、引言 随着智能手机的普及和技术的发展,了解手机内部工作原理变得越来越重要。Qualcomm作为全球领先的移动通信技术提供商之一,其产品覆盖了众多智能手机的核心部件,...

    Qualcomm手机——开机过程【大揭密】(中文版).pdf

    《Qualcomm手机——开机过程【大揭密】(中文版).pdf》这篇文档详细解析了高通(Qualcomm)智能手机的开机流程,涵盖了从按下电源键到系统完全启动的每一个阶段。在这里,我们将深入探讨这一过程中的关键知识点,以便...

    qcm2150 lk阶段操作i2c读写寄存器

    1. gpio22 gpio23当i2c操作,patch包含了两种方式gpio模拟i2c和blsp方式添加 2.lk 阶段读写i2c

Global site tag (gtag.js) - Google Analytics