如何检测是否支持HTML5输入控件
How to detect whether an HTML5 input control is supported?
如果我把<input type="range">
控件放在表单上,一些浏览器会(正确地)呈现一个滑块控件,而其他浏览器不知道range
是什么,会呈现一个文本框。处理这种情况需要额外的验证,因为文本框可以包含任意文本。是否有任何JavaScript我可以放入页面说"看这个控件在DOM,如果它是一个文本框控件,做foo()
"?
本网站推荐使用Modernizer:
检查HTML5输入类型使用检测技术#4。首先,在内存中创建一个虚拟的<input>
元素。所有<input>
元素的默认输入类型是"text"。这将被证明是至关重要的。
var i = document.createElement("input");
接下来,将dummy元素上的type属性设置为您想要检测的输入类型。
i.setAttribute("type", "color");
如果您的浏览器支持特定的输入类型,type属性将保留您设置的值。如果你的浏览器不支持特定的输入类型,它会忽略你设置的值,type属性仍然是"text"。
return i.type !== "text";
比起自己编写13个独立的函数,你可以使用Modernizr来检测对HTML5中定义的所有新输入类型的支持。Modernizr重用单个<input>
元素来有效地检测对所有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
}
相关文章:
- 有没有办法使非html5支持浏览器支持html5,而不仅仅是html5标记,html5 api也是如此
- HtmlUnit 和 jasmine-maven-plugin 是否支持 HTML5 sessionStorage?
- 如何确定访客 Web 浏览器是否支持 html5<视频>
- Powerpoint的Liveweb插件:支持HTML5 Canvas
- 如何检测浏览器是否支持HTML5
- 如何检查浏览器是否支持HTML5
- 检查浏览器兼容性是否支持HTML5历史API
- 当浏览器不支持HTML5历史API时,有条件地通过ajax加载history.js
- 如何检测浏览器支持HTML5微数据API
- FirefoxOS是否支持HTML5 data元素?
- JS/jQuery/mootools检测浏览器是否支持HTML5
- 如何检查是否支持HTML5输入
- 如何检查我的浏览器是否支持HTML5 Canvas混合模式
- 如何在不支持HTML5或flash的任天堂3ds浏览器中播放视频
- phonegap是否支持html5音频标签来播放本地音频文件?
- IE8和更低的版本不支持HTML5.我们如何实现canvas
- 如何检测一个视频文件是否支持HTML5视频标签
- 如何检测是否支持HTML5输入控件
- Safari不支持HTML5的void元素;JavaScript
- 显示后退图像,即使浏览器支持html5视频