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 屬性可用於自定義視窗標題欄的顏色。

另見