HTML5入门

HTML5特性检测--检测技术

字号+ 作者: 来源: 2014-11-16 20:49 我要评论( )

4种基本技术可以用于检测浏览器是否支持某种html5特性,从简单到复杂的顺序: 1、检测全局对象(window或navigator)是否拥有特定的属性。 如果浏览器支持地理位置API的话,全局的nav

 4种基本技术可以用于检测浏览器是否支持某种html5特性,从简单到复杂的顺序:

1、检测全局对象(window或navigator)是否拥有特定的属性。
如果浏览器支持地理位置API的话,全局的navigator对象上会有一个名为geolocation的属性,反之,navigator对象上该属性的值为undefined:
 
JavaScript Code复制内容到剪贴板
  1. function supports_geolocation(){  
  2. return !!navigator.geolocation;  
  3. }  
如果不想写这个方法的话,可以使用modernizr库提供的方法检测浏览器是否支持地理位置API:
 
JavaScript Code复制内容到剪贴板
  1. if(Modernizr.geolocation){ do something}  
  2. elsedo something }  
2、创建一个元素,然后检测该元素的DOM对象是否拥有特定的属性。以检测画布特性为例。
 
JavaScript Code复制内容到剪贴板
  1. function supports_canvas(){  
  2. return !!document.createElement_x_x('canvas').getContext;  
  3. }  
return !!document.createElement_x_x('canvas').getContext;这一句是创建一个虚拟的<canvas>元素,这个元素永远不会附加到页面上,因此对于用户来说它永远是不可见的。紧接着测试该元素是否拥有getContext()方法,这个方法只有当浏览器支持canvasAPI时才会存在,最后用双重否定!!来强制这个检测方法返回一个布尔值
如果不想写这个方法的话,可以使用modernizr库提供的方法检测浏览器是否支持canvas API:
 
JavaScript Code复制内容到剪贴板
  1. if(Modernizr.canvas){ do something}  
  2. elsedo something }  
 3、创建一个元素,然后检测该元素的DOM对象是否拥有特定的方法,同时调用这个方法并检查它的返回值。以检测支持视频格式为例。
 
JavaScript Code复制内容到剪贴板
  1. function supports_video(){  
  2.    return !!document.createElement_x_x('video').canPlayType;  
  3. }  
如果浏览器支持HTML5 video,被创建<video>元素对应的DOM对象会有一个名为canPlayType()的方法,反之,该对象只会拥有一些所有元素都有的公共属性。
如果不想写这个方法的话,可以使用modernizr库提供的方法检测浏览器是否支持video API:
 
JavaScript Code复制内容到剪贴板
  1. if(Modernizr.video){ do something}  
  2. elsedo something }  
 4、创建一个元素,给这个元素的DOM对象设定特定的属性值,然后检查浏览器是否保留了该属性值。以检测支持的<input>类型为例。
首先创建一个虚拟的<input>元素:var i=document.createElement_x_x("input");
<input>元素默认为文本类型,接下来将元素的类型设置成要检测的类型: i.setAttribute("type","color");
如果浏览器支持次特定的输入框类型,那么设置的type值会被保留,反之,依然为文本类型。
 
JavaScript Code复制内容到剪贴板
  1. return i.type!=="text";  
  2. if(!Modernizr.inputtypes.date){  
  3.    //浏览器有没有提供,type="date">原生支持  
  4. }  

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 超级绚丽的html5的页面

    超级绚丽的html5的页面

    2014-11-16 20:49

  • HTML5基础,第4部分:点睛之笔Canvas

    HTML5基础,第4部分:点睛之笔Canvas

    2014-11-16 20:49

  • HTML5基础,第3部分:HTML5 API的威力

    HTML5基础,第3部分:HTML5 API的威力

    2014-11-16 20:49

  • HTML5基础,第2部分:组织页面的输入

    HTML5基础,第2部分:组织页面的输入

    2014-11-16 20:49

网友点评
l