如果我在窗體上放置了一個<input type="range">
控件,某些瀏覽器將(正確)呈現滑塊控件,而其他瀏覽器則不知道range
是否會呈現文本框。處理這種情況需要額外的驗證,因爲文本框可以包含任何文本。有沒有JavaScript可以放入頁面來說「在DOM中查看此控件,如果它是文本框控件,請執行foo()
」?如何檢測是否支持HTML5輸入控件?
5
A
回答
9
這site recommends using Modernizer:
檢查HTML5輸入類型使用檢測技術#4。首先,在內存中創建一個虛擬<input>
元素。所有<input>
元素的默認輸入類型都是「文本」。這將被證明是非常重要的。
var i = document.createElement("input");
接下來,將啞元素上的type屬性設置爲要檢測的輸入類型。
i.setAttribute("type", "color");
如果您的瀏覽器支持該特定輸入類型,則type屬性將保留您設置的值。如果您的瀏覽器不支持該特定輸入類型,它將忽略您設置的值,並且類型屬性仍然是「文本」。
return i.type !== "text";
,而不是寫13個獨立的功能你自己,你可以使用Modernizr的檢測所有在HTML5中定義的新的輸入類型的支持。 Modernizr重用了單個元素來有效檢測對所有13種輸入類型的支持。然後它構建一個名爲Modernizr.inputtypes
的散列,其中包含13個鍵(HTML5類型屬性)和13個布爾值(如果支持則爲true,否則爲false)。
//check for native date picker
if (!Modernizr.inputtypes.date) {
// no native support for <input type="date"> :(
// maybe build one yourself with Dojo or jQueryUI
}
的
+0
檢查出HTML 5 shim ...也與錯誤的HTML 5 shiv。 – ErikE 2013-04-10 00:20:18
相關問題
- 1. 如何檢測瀏覽器是否支持此HTML5功能
- 2. 檢測是否支持</輸入類型=「文件」>
- 3. 如何檢測是否支持clipboard.js
- 4. 如何檢測UIMotionEffect是否受支持?
- 5. 如何檢測printf是否支持%a?
- 6. 檢測是否支持SSL
- 7. 如何檢測HTML5視頻標籤是否支持視頻文件?
- 8. 檢測輸入類型=「日期」是否支持佔位符
- 9. 如何檢查,如果支持HTML5輸入?
- 10. 如果安裝了IE9,WPF 4.0 WebBrowser控件是否支持HTML5?
- 11. Android WebView是否支持html5?
- 12. J2ME是否支持HTML5?
- 13. 如何檢測瀏覽器是否支持gesturestart事件?
- 14. 如何檢查瀏覽器是否支持HTML5?
- 15. HTML5音頻:如何檢查是否支持playbackRate?
- 16. 如何檢測(在js中)是否在HTML5多輸入中選擇文件?
- 17. React Native:檢測是否支持UIVisualEffectView
- 18. 檢測設備是否支持jQuery Mobile
- 19. JavaScript:檢測是否支持Symbol.toStringTag
- 20. 檢測是否在笨支持JS
- 21. 檢測設備是否支持電話?
- 22. 檢測瀏覽器是否支持jQueryMobile
- 23. 檢測瀏覽器是否支持vbscript?
- 24. IE6是否支持任何HTML5元素?
- 25. 檢測支持HTML5 iframe沙盒屬性
- 26. 使用Modernizr檢測html5音頻支持
- 27. ASP.NET圖表控件是否支持瀏覽器中的canvas/html5?
- 28. 如何檢測輸入csv文件是否嵌入了引號?
- 29. 如何檢測`focusin`支持?
- 30. 如何檢查PHP是否支持multi_curl?
可能重複[如何檢查,如果輸入的HTML5支持?(http://stackoverflow.com/questions/8278670/how-to-check-if-a-html5-input-is - 支持) – Mathletics 2013-04-10 00:20:11