`

什么是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)作为一种跨时代的执行库技术,曾在软件开发领域扮演了至关重要的角色。XBL,全称为Exec Bin Lib,是一种执行库技术,其设计理念是为开发者提供一个简单而基础的运行库...

    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