如何检测浏览器是否支持HTML5

本文介绍了四种检测HTML5特性的基本方法,包括检测全局对象、创建元素检测特定属性或方法等,并介绍了如何使用Modernizr库自动检测HTML5和CSS3的支持情况。

以下内容总结自《html5揭秘》

四种基本检测方法

在支持HTML5的特性的浏览器中,与HTML5特性相关的DOM对象会有特定的HTML5相关属性,所以通过检测这些DOM对象可以快速检测出HTML5是否被支持。

4种基本检测方法,从简单到复杂依次是:

1、检测全局对象(如window和navigator)是否拥有特定属性。

举例:检测是否支持本地存储

function supportLocalStorage(){

return ("localStorage" in window)&&window["localStorage"] !== null;

}

举例:检测是否支持web workers

function supportWebWorkers(){

return !!window.Worker;//若不支持,则该属性的值为undefined

}

2、创建一个元素,然后检测该元素的DOM对象是否拥有特定的属性。

举例:检测是否支持canvas

function supportCanvas(){

return !!document.createElement("canvas").getContext; //检测是否有getContext()方法,但没有调用此方法

}

举例:检测是否支持video

function supportVideo(){

return !!document.createElement("video").canPlayType; //检测是否有canPlayType()方法,但没有调用此方法

}


3、创建一个元素,然后检测这个元素的DOM对象是否拥有特定方法,同时调用这个方法并检查这个返回值。

举例:检测浏览器是否支持的某种视频格式

function supportVideoType(){

return document.createElement("video").canPlayType('video/mp4;codecs="avc1.42E01E, mp4a.40.2"'); 

//调用特性方法,返回值为:probably、maybe、“”

}

4、创建一个元素,然后检测该元素的DOM对象设定的属性值,然后检查浏览器是否保留了该属性值。

举例:检测input元素是否支持“color”type

function supportColorType(){

var i=document.createElement("input")

i.setAttibute("type","color"); 

return i.type !=="text"//text为默认的type

}


使用Modernizr:一个HTML5检测库

Modernizr是一个开源javascript类库,用于检测浏览器是否支持HTML5和CSS3。只有在页面顶部加上

<script src="modernizr.min.js"></script>

Modernizr是自动运行的,在运行时会创建一个名为Modernizr的全局对象,这个对象为每一个可检测的特性都会创建一个对应的布尔类型的属性。例如:你的浏览器支持canvas API,则Modernizr.canvas的属性值就为true,反之为false。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值