Firefox 3 中的 XUL 改进

Firefox 3 提供了许多新的 XUL 元素,以及对现有元素的改进。虽然这些内容在其他地方有详细记录,但本文档提供了一个方便的改进列表以及指向详细文档的链接。

新元素

  • 数字控件

    • 新的 <scale> 元素允许您创建滑块,让用户在指定范围内选择任何值。该小部件通常用于创建音量控件等。
    • 文本框 type 属性的新值 number 创建了一个只能输入数字的文本框。此外,旁边会出现箭头按钮,可用于逐步调整值。有关数字文本框的更多信息。( Firefox bug 345510)
    • 添加了 <spinbuttons> 元素,在创建使用 XBL 绑定的控件时可以使用。( Firefox bug 155053)
    • 两个控件 <datepicker><timepicker> 可用于输入日期和时间。日期选择器有多种样式,通过设置 type 属性来实现,以允许通过文本框或日历网格进行输入。有关日期选择器的更多信息。
  • 已创建菜单和弹出窗口的指南,描述了可用的新功能

    • 添加了 <dropmarker> 元素,在创建使用 XBL 绑定的类似菜单的控件时很有用。( Firefox bug 348614)
    • <panel> 元素是新的,专为非菜单弹出窗口设计。它们可以支持任何类型的内容。菜单应使用 <menupopup> 元素。菜单提供键盘导航并支持打开和关闭子菜单。

对树的改进

  • 树现在可以水平滚动。如果列不适合可用宽度,则会出现水平滚动条。当列的指定宽度总和超过可用空间时,就会发生这种情况。有关详细信息,请参阅 Firefox bug 212789
  • 新的选择样式允许单独选择单元格,而不是整行。要使用此选择样式,请将树的 seltype 属性设置为 cell
  • 树现在支持对单个单元格进行编辑。当用户双击一个可编辑的单元格时,会出现一个文本字段,用户可以在其中编辑单元格的内容。有关详细信息,请参阅 这些说明
  • <treecol> 元素现在支持 overflow 属性,可以将其设置为 true,以允许该列中单元格的文本在文本过大无法放入单个单元格时扩展到相邻的空白单元格。

对菜单的改进

  • 现在一致使用 image 属性来设置图像。
  • 选择项目时,菜单列表会触发 select 事件。
  • 已将 inputFieldeditable 属性添加到 menulist
  • <menu><menuitem><menuseparator> 元素现在有一个只读的 selected 属性,用于检索项目在 <menulist> 中是否被选中。
  • <menu><menuitem><menuseparator> 元素现在有一个只读的 control 属性,用于返回封闭的 <menulist>
  • <menu><menuitem><menuseparator> 元素现在支持 accessKeydisabledcropimagelabel 属性,它们用于设置相应的属性。
  • <menu> 元素现在具有用于添加、插入和删除 menuitem 的方法。( Firefox bug 372552)
  • 可编辑菜单列表现在提供一个 editor 属性来获取其文本字段的内部 nsIEditor
  • 在支持的平台上,菜单现在可以变得半透明 ( Firefox bug 70798)。

对文本框的改进

  • 将文本框的 spellcheck 属性设置为 true 可为该文本框启用内联拼写检查。
  • <textbox> 现在有一个 reset() 方法,用于将文本框的值重置为默认值。defaultValue 属性可用于检索和修改文本框的默认值。
  • 现在提供了一个 editor 属性,可用于获取文本字段的内部 nsIEditor
  • textbox 现在支持 newlines 属性,该属性指定如何处理粘贴文本中的换行符。可能的值包括:
    • pasteintact - 按原样粘贴所有内容
    • pastetofirst - (默认值) 只粘贴到第一个换行符
    • replacewithspaces - 将换行符替换为空格
    • replacewithcommas - 将换行符替换为逗号
    • strip - 去除所有换行符
    • stripsurroundingwhitespace - 去除所有换行符和周围的空格

其他改进

  • <button> 上的 type 属性可以设置为 repeat,以创建当按住鼠标按钮时会重复触发命令事件的按钮。
  • 现在可以在 <dialog> 元素上使用 buttondisabledaccept 属性,使接受 (OK) 按钮最初被禁用。
  • <titlebar> 元素现在支持 allowevents 属性,以允许事件传递给标题栏的子元素。
  • <splitter> 现在支持 collapse 属性的附加值 'both',表示拆分器在拖动时可以折叠其两侧的元素。当其中一个折叠时,substate 属性将设置为 beforeafter。( Firefox bug 337955)
  • <richlistbox> 元素现在支持多选。将 seltype 属性设置为 'multiple' 以启用此功能。
  • <radio> 元素有一个 group 属性,可以将其设置为单选按钮所属的 <radiogroup> 元素的 ID。这使得单选按钮的排列方式可能不像将它们全部放在 radiogroup 中那样方便。
  • 菜单、面板和工具提示支持另外两个方法 openPopup()openPopupAtScreen()。应使用这些方法而不是 showPopup(),因为后者被发现难以使用。
  • 改进了非拉丁键盘布局用户对 <key> 元素的处理。
  • 在 Mac OS X 上,根元素(<window><dialog><prefwindow><wizard>)的 activetitlebarcolorinactivetitlebarcolor 属性可用于自定义窗口标题栏的颜色。

另见