HTML5特性检测-检测技术

PHP中文网
リリース: 2016-05-17 09:09:53
オリジナル
1760 人が閲覧しました


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

1、检测全局对象(window或navigator)是否拥有特定的属性。
如果浏览器支持地理位置API的话,全局的navigator对象上会有一个名为geolocation的属性,反之,navigator对象上该属性的值为undefined:

function supports_geolocation(){  
return !!navigator.geolocation;  
}
ログイン後にコピー

如果不想写这个方法的话,可以使用modernizr库提供的方法检测浏览器是否支持地理位置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;这一句是创建一个虚拟的

元素,这个元素永远不会附加到页面上,因此对于用户来说它永远是不可见的。紧接着测试该元素是否拥有getContext()方法,这个方法只有当浏览器支持canvasAPI时才会存在,最后用双重否定!!来强制这个检测方法返回一个布尔值

如果不想写这个方法的话,可以使用modernizr库提供的方法检测浏览器是否支持canvas API:

if(Modernizr.canvas){ do something}
else{ do something }
ログイン後にコピー

3、创建一个元素,然后检测该元素的DOM对象是否拥有特定的方法,同时调用这个方法并检查它的返回值。以检测支持视频格式为例。

function supports_video(){
   return !!document.createElement_x_x('video').canPlayType;
}
ログイン後にコピー

如果浏览器支持HTML5 video,被创建

如果不想写这个方法的话,可以使用modernizr库提供的方法检测浏览器是否支持video API:

if(Modernizr.video){ do something}
else{ do something }
ログイン後にコピー

4、创建一个元素,给这个元素的DOM对象设定特定的属性值,然后检查浏览器是否保留了该属性值。以检测支持的类型为例。

首先创建一个虚拟的元素:var i=document.createElement_x_x("input");

元素默认为文本类型,接下来将元素的类型设置成要检测的类型: i.setAttribute("type","color");

如果浏览器支持次特定的输入框类型,那么设置的type值会被保留,反之,依然为文本类型。

return i.type!=="text";
if(!Modernizr.inputtypes.date){
   //浏览器有没有提供,type="date">原生支持
}
ログイン後にコピー

以上就是HTML5特性检测-检测技术的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!