2009-08-14 42 views
21

我想知道,在新的HTML 5中,我們將獲得<音頻>和<視頻>標籤,但爲什麼不是原生可編輯組合框和內置本地菜單支持?爲什麼HTML 5沒有可編輯的組合框或本地菜單?

我問這個問題的原因是因爲當我必須爲典型的基於表格的應用程序(例如訂單管理應用程序)設計Web解決方案時,這些是我最常遇到的問題。在適當的客戶端應用程序中,我可以使用操作系統提供這些設施(例如JPopupMenu,JComboBox)。對於一個Web應用程序,我必須尋找JavaScript(庫)來完成類似的事情。

爲什麼這些不在HTML 5中?

我知道我應該避免這樣的問題的討論,所以這裏有一些其他問題:你知道可以做在彈出菜單中的事情,編輯ComboBox東西便宜(或許還有一個小的代碼示例)庫?

回答

49

實際上,可以使用輸入元素上的新列表屬性創建可編輯的組合框或組合框。它指向一個datalist元素,可以提供預定義的選項列表:

<input list=languages> 
<datalist id=languages> 
<option value="English"></option> 
<option value="Dutch"></option> 
</datalist>

對於菜單舊菜單元素已被重新使用。

您可以在IE> = 10,Firefox> = 37,Chrome> = 39,Opera> = 29中使用至少datalist。caniuse datalist的數據。關於菜單元素,只有Firefox似乎對它有部分支持。

+1

聲明:我在Opera 5上工作(除其他外)。 – Anne 2009-08-14 15:48:51

+1

幹得不錯。有沒有辦法測試它?我閱讀了相關的HTML5規範,但我不確定它100%是否涵蓋了我對可編輯組合框的理解,類似於其本機對象。 – akarnokd 2009-08-14 15:57:09

+0

將上面的內容加載到最近的Opera版本中應該可以做到。 (9.x東西最近。) – Anne 2009-08-14 19:21:44

1

這些都是很容易可行使用JavaScript,<audio><video>(和<canvas>!)都沒有。

依靠JavaScript庫並不是件壞事。如果瀏覽器完成了所有操作,每個網頁看起來都是一樣的。

+1

音頻,視頻和畫布也可以在Flash和朋友中使用。 – akarnokd 2009-08-14 15:30:55

+2

目標不是依賴插件,如'flash and friends' – Javier 2009-08-14 15:43:23

+0

這兩個多媒體標籤唯一的缺點是它們需要可自由訪問的內容(想象直接可下載的YouTube內容,恐怖!)或自定義編解碼器插件。我的目標是不要太依賴javascript。 – akarnokd 2009-08-14 16:05:39

3

瀏覽器中的窗體和輸入控件的狀態通常是一團糟。

  • 執行沒有一致性。有些使用操作系統本地控件(Safari),一些使用定製控件(Opera),一些使用混合兩種(IE)
  • 由於上述原因,造型/品牌形式並不可靠
  • 又因爲上面,我們遭受(編輯)Z指數問題。
  • 即使在可以應用樣式的瀏覽器上,它也不一致。是否僅向input添加CSS邊框才能看到單選按鈕周圍的方格?

總的來說,我傾向於同意你的看法。我們一直住在相同的窗體控件since HTML 3。因此,我們網站開發人員需要自行創建更豐富和先進的控件。儘管這些工作可行,但他們嚴重依賴DHTML,並且可能會對可用性產生重大影響。

這將是很高興看到在這方面的進步。