1、HTML 5 中国:http:/www.html5cn.orgHTML5 特性检测-检测技术4 种基本技术可以用于检测浏览器是否支持某种 html5 特性,从简单到复杂的顺序:1、检测全局对象(window 或 navigator)是否拥有特定的属性。如果浏览器支持地理位置 API 的话,全局的 navigator 对象上会有一个名为 geolocation 的属性,反之,navigator 对象上该属性的值为 undefined:function supports_geolocation() return !navigator.geolocation; 如果不想写这个方法的话,可以使用 mo
2、dernizr 库提供的方法检测浏览器是否支持地理位置 API:if(Modernizr.geolocation) do something else do something 2、创建一个元素,然后检测该元素的 DOM 对象是否拥有特定的属性。以检测画布特性为例。function supports_canvas() return !document.createElement_x_x(canvas).getContext; return !document.createElement_x_x(canvas).getContext;这一句是创建一个虚拟 的元素,这个元素永远不会附加到页面上,因
3、此对于用户来说它永远是不可见的。紧接着测试该元素是否拥有 getContext()方法,这个方法只有当浏览器支持 canvasAPI 时才会存在,最后用双重否定!来强制这个检测方法返回一个布尔值如果不想写这个方法的话,可以使用 modernizr 库提供的方法检测浏览器是否支持 canvas API:if(Modernizr.canvas) do something else do something 3、创建一个元素,然后检测该元素的 DOM 对象是否拥有特定的方法,同时调用这个方法并检查它的返回值。以检测支持视频格式为例。function supports_video() return !
4、document.createElement_x_x(video).canPlayType; 如果浏览器支持 HTML5 video,被创建 元素对应的 DOM 对象会有一个名为canPlayType()的方法,反之,该对象只会拥有一些所有元素都有的公共属性。如果不想写这个方法的话,可以使用 modernizr 库提供的方法检测浏览器是否支持 video API:if(Modernizr.video) do something else do something 4、创建一个元素,给这个元素的 DOM 对象设定特定的属性值,然后检查浏览器是否保留了该属性值。以检测支持的类型为例。首先创建一个虚
5、拟的 元素:var i=document.createElement_x_x(“input“);元素默认为文本类型,接下来将元素的类型设置成要检测的类型: HTML 5 中国:http:/www.html5cn.orgi.setAttribute(“type“,“color“);如果浏览器支持次特定的输入框类型,那么设置的 type 值会被保留,反之,依然为文本类型。return i.type!=“text“; if(!Modernizr.inputtypes.date) /浏览器有没有提供,type=“date“原生支持 更多详情可访问 html5 中国: http:/www.html5cn.org