`
高级java工程师
  • 浏览: 408149 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mozilla中 xul里面 window 等标签使用

    博客分类:
  • xul
阅读更多
XUL是一种基于XML的语言,它是一种用来开发Firefox的GUI的标记语言。使用HTML和脚本语言来创建GUI——在此基础上出现了革命性的XUL,Windows Vista的XAML以及Adobe Flash的Flex是和XUL类似的技术。用XUL标记的应用程序在不同平台下的Firefox中具有相同的外观。

被设计用于标记网页的HTML语言没有多少标记应用程序的能力,而XUL则是专门为标记UI设计的,通过XUL,你不需要编写脚本,只需通过编写标签,就可以插入精致的GUI组件。

XUL不是W3C标准。学习和使用XUL需要参考:
* XUL参考手册:https://developer.mozilla.org/en/XUL_Reference
* XUL维基:http://wiki.mozilla.org/XUL

XUL在Mozilla开发的Firefox、Thunderbird,和其它基于Firefox或Geckoy引擎的Web浏览器,甚至一些基于Web的内容中得到使用。

把一段XUL代码保存为以.xul结尾的文本文件,然后把文件拖放到Firefox窗口中,就可以看到这段代码的运行效果。

通过命令行可以让Firefox只显示XUL文件的内容而不显示Firefox的UI,具体命令如下:
$ firefox -chrome file_URL.xul

XUL就像一个XML应用程序。一个XUL文档的根元素总是“window”元素,其名称空间的URI是:http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul

如果默认的字符编码是UTF-8,则编码指定和XML声明可以忽略,不过在这个入门教程中我们保留它以学习XUL文档的完整结构。

因为XUL文档也是一个XML文档,它可以包含XHTML、SVG、MathML和其它元素。如果你引用了外部实体,那么XML文档的内容就被模块化了。再加上一些XML相关的技术,如DOM、XLink、XSLT,你就在可以不同的应用程序中使用它。

XUL文档的一般结构:


01.<?xml version="1.0" encoding="UTF-8"?>

02.<?xml-stylesheet href="chrome://global/skin/"?>

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

04.    <!-- Content go here. -->

05.</window>
复制代码

XUL使用CSS来指定它的元素的外观,因为XUL是一种XML,样式表要使用xml-stylesheet处理指令来读取。

XUL的盒子模型——

理论上说,XUL有两种摆放UI组件的盒子:水平的(使用hbox元素)和垂直的(使用vbox元素)。

水平的和垂直的盒子的例子:


01.<label value="Horizontal layout"/>

02.<hbox>

03.    <button label="horizontal1"/>

04.    <button label="horizontal2"/>

05.</hbox>

06.<label value="Vertical layout"/>

07.<vbox>

08.    <button label="vertical1"/>

09.    <button label="vertical2"/>

10.</vbox>

11.<hbox>

12.    <button label="mixed1"/>

13.    <vbox>

14.        <button label="mixed2"/>

15.        <button label="mixed3"/>

16.    </vbox>

17.    <button label="mixed4"/>

18.</hbox>
复制代码
注:需要把上述代码嵌入XUL文档的基本结构中才可以正常工作。

XUL中还有一个grid元素,类似HTML中的table元素,以及一个stack元素,用来对其它元素进行分层。所有屏幕上可见的小组件都使用盒子来布局,这使复杂的界面设计能够实现。

常用属性:
* id和class:和XHTML中的id和class的作用完全相同。id为元素指定唯一的名字,class用来对元素进行分类。通过id和class,你就可以在CSS和JavaScript中方便地访问某个元素或某些元素。
* orient:一个盒子的内容总是按照初始的垂直或水平的方式排列。不过通过使用orient属性,你可以显式地设置或改变它们的布局方式。
* align和pack:align和pack属性制定了一个盒子中的内容的布局方式。有效的取值包括:start(顶部或左边), center, end(底部或右边), stretch(扩展元素,使它和最大最宽的元素能够匹配)。align决定了元素在垂直方向的排列方式,pack决定了元素在水平方向的排列方式。测试代码为orient.xul,通过修改其中align和pack属性的值为start/center/end可以进行演示。
* flex:通过设置flex属性的值,可以扩展元素,直至填充整个窗口的高或宽。有效的取值是正整数。如果只有一个元素设置了flex属性,那么只要取值为1它就可以充满整个坐标(水平或垂直的),如果有两个元素设置了flex属性,那么它们将按照取值的比例共同充满整个坐标。测试代码为flex.xul,通过修改其中的flex属性的值可以进行演示。
* ordinal:默认情况下,元素是按照它们在代码中出现的顺序在盒子中依次排列的。不过你可以用ordinal属性来调整元素的排列顺序。有效的取值为正整数,值小的排在前面。如果两个元素的ordinal属性的值相同,那么还要看它们在代码中出现的顺序。测试代码为ordinal.xul,通过修改其中ordinal属性的值可以进行演示。
* width和height:指定元素的尺寸。测试代码为size.xul,通过修改其中width和height属性的值可以进行演示。
* hidden和collapsed:hidden和collapsed属性就好像开关,可以控制元素是否显示。设置hidden="true"将禁止该元素的显示,这和CSS中的display: none效果是一样的。这个属性很有用,例如一个上下文菜单中某个不应该显示的项目就应该应用这个属性。设置collapsed="true"将使元素的高和宽都显示为0,当时元素还被认为是存在的,这和CSS中的visibility: collapse的效果是一样的。这个属性也很有用,比如页面内容不多不需要显示垂直滚动条时就可以应用这个属性。
* disabled:可以暂时禁止用户对某个元素的输入,这时元素将显示为透明的或灰白色。
提示:使用hidden、collapsed和disabled这类属性时需要注意,有的脚本或CSS可能会把他们的值当作true,只要它们的值被设置了,而不会去在意值是否是false。因此,当你在DOM函数中想要改变这些属性的值时,你不能使用setAttribute('disabled', false),而应该使用removeAttribute('disabled')。
* tooltiptext:在元素上显示一段简要的解释性的工具提示。测试代码为tooltiptext.xul。
*persist:记录并保存元素状态被用户操作改变之后的状态,这样当XUL再次打开时,保存的元素的状态将被恢复。这些状态实际上是保存在用户配置的localstore.rdf中的。



orient.xul文件的内容:

01.<?xml-stylesheet href="chrome://global/skin/"?>

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

03.<box flex="1" align="center" pack="center">

04.    <button label="Happy"/>

05.    <button label="Sad"/>

06.</box>

07.</window>
复制代码

flex.xul文件的内容:

01.<?xml-stylesheet href="chrome://global/skin/"?>

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

03.<hbox>

04.    <label value="label1" flex="1" style="border: 1px solid;"/>

05.    <label value="label2" flex="2" style="border: 1px solid;"/>

06.</hbox>

07.</window>
复制代码

ordinal.xul文件的内容:

01.<?xml-stylesheet href="chrome://global/skin/"?>

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

03.<hbox>

04.    <label value="label1" flex="1" style="border: 1px solid;"/>

05.    <label value="label2" flex="2" style="border: 1px solid;"/>

06.</hbox>

07.</window>
复制代码

size.xul文件的内容:

01.<?xml-stylesheet href="chrome://global/skin/"?>

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

03.<vbox>

04.    <button label="button1" ordinal="5"/>

05.    <button label="button2" ordinal="7"/>

06.    <button label="button3" ordinal="1"/>

07.</vbox>

08.</window>
复制代码

tooltiptext.xul文件的内容:

01.<?xml-stylesheet href="chrome://global/skin/"?>

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

03.<hbox>

04.    <button label="Button" width="200" height="200" tooltiptext="It's a triangle."/>

05.</hbox>

06.</window>
复制代码

以上为“Chapter 3: Introduction to XUL—How to build a more intuitive UI”的学习笔记的第一部分。
分享到:
评论

相关推荐

    xul文档具体标签说明和例子

    XUL(XML User Interface Language)是一种基于XML的语言,主要用于构建跨平台的图形用户界面,尤其在Mozilla Firefox等浏览器的扩展开发中广泛应用。XUL文档的结构和HTML类似,但提供了更丰富的组件和定制性。以下...

    xul调用c++xpcom例子.rar

    在XUL文件中,可以使用标签引入JavaScript代码,这里会定义调用C++组件的函数。通过window.netscape.security.PrivilegeManager.enablePrivilege()来获取必要的权限,然后使用Components.classes和Components....

    xul学习小程序

    XUL包含一系列的UI元素,如按钮、标签、列表框等,这些元素可以通过XML语法定义,并可以与JavaScript或CSS结合使用,以实现动态交互和样式控制。 在"Xul学习小程序"中,我们可以预见到以下核心知识点: 1. **XUL...

    XUL Programmer's Reference Manual

    2. **元素与属性**:XUL包含一系列预定义的元素,如窗口(window),按钮(button),文本框(textbox)等,它们都有特定的属性来控制其行为和外观。 3. **样式表(CSS)**:XUL界面的样式可以通过CSS(Cascading Style ...

    XUL开发手册(firefox)

    由于其独特的特性,XUL被广泛应用于Firefox和其他基于Mozilla的浏览器的插件及扩展开发中。 #### 二、XUL在Firefox中的应用 随着Firefox 4.0的发布,XUL不仅成为了构建浏览器的核心组件之一,同时也提供了一个完整...

    XUL中文帮助手册(DOC)

    在示例中,`&lt;window&gt;`标签包含了一个`&lt;browser&gt;`元素,该元素定义了一个浏览器组件,它的`src`属性指定了加载的网页URL,`type="content"`表明这是一个内容类型,而`flex="1"`意味着这个元素会占据所有可用空间。...

    xul小程序

    XUL(XML User Interface Language)是一种标记语言,主要用于构建跨平台的用户界面,尤其是在Mozilla Firefox浏览器和Thunderbird邮件客户端等应用程序中广泛使用。这个“xul小程序”是您学习XUL过程中积累的心得...

    XUL最全帮助资料(part02)

    XUL在Firefox、Thunderbird等Mozilla基金会项目中广泛使用,允许开发者创建自定义的、跨平台的用户界面。 在"XUL最全帮助资料(part02)"这个主题中,我们主要会探讨以下几个核心知识点: 1. **XUL的基本结构与元素*...

    mozilla xbl基本用法示例

    XUL(XML User Interface Language)是Mozilla使用的一种标记语言,用于构建跨平台的图形用户界面。在XUL文档中,我们可以定义UI元素并引用XBL绑定。一个典型的XUL文件可能包含如下结构: ```xml &lt;window xmlns=...

    Firefox插件(XUL)开发 学习笔记 - 1. 开发环境以及数据库一瞥

    总结来说,Firefox插件(XUL)开发涉及到环境搭建、XUL界面设计、数据库操作、API使用和测试调试等多个方面。通过深入学习和实践,你可以创造出功能强大、个性化的Firefox插件,提升用户的浏览器体验。而随着...

    xulrunnersamples.rar_xulrunner

    它会包含各种XUL元素,如&lt;window&gt;、、等,以及它们的子元素和属性。同时,这些XUL文件通常还会引用JavaScript文件,如“main.js”,用于处理用户的交互事件和应用逻辑。 JavaScript在XUL中扮演着重要角色,它是实现...

    Firefox附加组件开发者指南

    - **从XPConnect中调用XPCOM**:XPConnect是XPCOM的一个组成部分,用于在JavaScript中使用XPCOM组件。 - **对话框许可(Permitbydialog)**:一种机制,允许扩展在特定情况下请求权限。 - **编辑prefs.js文件**:这...

    org.eclipse.swt.win32.win32.x86_3.7.0.v3735b.rar

    4. `swt-xulrunner-win32-3735.dll` 可能涉及对Mozilla XULRunner的支持,XULRunner是一个运行XUL(XML User Interface Language)应用程序的框架。 5. `swt-webkit-win32-3735.dll` 提供了对WebKit渲染引擎的支持,...

Global site tag (gtag.js) - Google Analytics