前言
因为html5是各种新特性的集合,所以如果我们只说某个旧浏览器支持或不支持HTML5。 这个说没有任何意义,存在一定的误解,
应该是某个旧浏览器是否支持HTML5的某些特性,例如:canvas、audio、web worker…等等。
检测HTML5特性的几种方式
判断在全局的对象(例如:window)中是否存在某属性
(例如:Worker , FileReader , DataView , Blob ….)
创建某个元素,判断该元素是否存在某属性
(例如 :
var el = document.createElement("canvas"); if(el.getContext){}
)- 创建某个元素,判断该元素的方法是否存在,并且调用它检查它的返回值。
1 | function supports_h264_baseline_video() { |
创建某个元素,设置某个属性的值,判断是否支持这个属性的值
例如 : input元素
默认创建出来的input, type属性是’text’ ,我们知道的type 还有 输入密码的<input type="password">
、完成表单提交的<input type="submit">
。 但在HTML5中又提供了很多其他的type。这里, 我们就可以使用 设置input的type属性,来判断当前浏览器是否支持HTML5的type。
1 | function checkInputColor(){ |
最后 ,如果你对上面这几种的检测方式都不感兴趣。你可以使用 modernizr 一个用来检测HTML5、CSS3的js库。
例如:你想知道你用的浏览器是否支持canvas API ,你就可以这样:
1 | if (Modernizr.canvas) { |