WEB(五)_​Modernizr.js检测浏览器HTML5新增特性的支持
WEB(五)_​Modernizr.js检测浏览器HTML5新增特性的支持
五谷子 发表于3年前
WEB(五)_​Modernizr.js检测浏览器HTML5新增特性的支持
  • 发表于 3年前
  • 阅读 22
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

摘要: 有一部分浏览器对HTML5的支持不够理想,对于不支持HTML5的浏览器JS将无法获得DOM对象,需要if-else要兼容

首先Modernizr.js插件,它能简单的帮助开发者向浏览器询问是否支持HTML5标签

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

通过上面的调用就可以正常使用了,下面我们来试试吧,其中会用原生js写法和插件写法,自己判别那种适合自己吧

1.canvas

//插件写法
if(Moderniz.canvas){
    alert("浏览器支持Canvas标签");
}else{
    alert("浏览器不支持Canvas标签")
}
//原生写法
function isCanvas(){
    return !!document.createElement('canvas').getContext;//双重!!(否定)用于强制这个检测方法返回一个布尔值
}

2.video

//插件写法
if(Moderniz.video){
    alert("浏览器支持video标签");
}else{
    alert("浏览器不支持video标签")
}
//原生写法
function isVideo(){
    return !!document.createElement('video').getContext;//双重!!(否定)用于强制这个检测方法返回一个布尔值
}

3.本地存储localStorage

//插件写法
if(Moderniz.localstorage){//注意小写
    alert("浏览器localStorage支持");
}else{
    alert("浏览器不支持localstorage");
}
//原生写法
function isLocalStorage(){
    return ('localStorage' in window) && window['localStorage']!=null;
}

4.人工线程(后台线程)Web Worker

//插件写法
if(Moderniz.webworkers){//注意小写
    alert("浏览器workers支持");
}else{
    alert("浏览器不支持workers");
}
//原生写法
function isWorker(){
    return !!window.Worker;//双重!!(否定)用于强制这个检测方法返回一个布尔值
}

5.离线Web应用(针对移动应用居多)Applicationcache

//插件写法
if(Moderniz.applicationcache){//注意小写
    alert("浏览器applicationcache支持");
}else{
    alert("浏览器不支持applicationcache");
    //可以尝试使用Gears或者其他第三方解决方案!
}
//原生写法
function isApplicationCache(){
    return !!window.applicationCache;//双重!!(否定)用于强制这个检测方法返回一个布尔值
}

6.地理位置geolocation

//插件写法
if(Moderniz.geolocaltion){//注意小写
    alert("浏览器geolocaltion支持");
}else{
    alert("浏览器不支持geolocaltion");
    //可以尝试使用geolocaltion或者其他第三方解决方案!
}
//原生写法
function isGeolocaltion(){
    return !!navigator.geolocaltion;//双重!!(否定)用于强制这个检测方法返回一个布尔值
}

以上就是HTML5新特性的判定了!

作者:五谷子(wuguzi)

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 4
博文 19
码字总数 5385
×
五谷子
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: