js获取、比较浏览器名称和版本号的简便方法
2017-11-17 10:18
513 查看
1、对浏览器的UA进行查询,获取当前浏览器的名称和版本号:
因此chrome和safari的版本号要依据情况单独处理,以上函数返回包含浏览器名称和版本号的数组;
2、获取到版本号后,可用下面的方法进行版本大小判断,版本号可能包含两个小数点,因此分别比较:
getBrowserInfo(){ let agent = navigator.userAgent.toLowerCase() ; let regStr_ie = /msie [\d.]+;/gi ; let regStr_ff = /firefox\/[\d.]+/gi let regStr_chrome = /chrome\/[\d.]+/gi ; let regStr_saf = /safari\/[\d.]+/gi ; let regStr_safVersion = /version\/[\d.]+/gi ; //IE if(agent.indexOf("msie")>0){return agent.match(regStr_ie) ;} //firefox if(agent.indexOf("firefox")>0){return agent.match(regStr_ff) ;} //Chrome if(agent.indexOf("chrome")>0){return agent.match(regStr_chrome) ;} //Safari if(agent.indexOf("safari")>0 && agent.indexOf("chrome")<0){ let bro= agent.match(regStr_saf)[0].split('/')[0]; let ver = agent.match(regStr_safVersion)[0].split('/')[1]; let user = bro+'/'+ver; return [user]; } },注:由于早期浏览器之间相互抄袭伪装,导致其UA可能包含其他浏览器的信息,例如:chrome的UA可能为:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.65 Safari/534.24
因此chrome和safari的版本号要依据情况单独处理,以上函数返回包含浏览器名称和版本号的数组;
2、获取到版本号后,可用下面的方法进行版本大小判断,版本号可能包含两个小数点,因此分别比较:
compareBrowser(ver1,ver2) { let version1pre = parseFloat(ver1); let version2pre = parseFloat(ver2); let version1next = ver1.replace(version1pre + ".",""); let version2next = ver2.replace(version2pre + ".",""); if(version1pre > version2pre){ return true; }else if(version1pre < version2pre){ return false; }else{ if(version1next >= version2next){ return true; }else{ return false; } } },3、调用上述两个方法,可以获取和比较浏览器的名称,对低版本的用户做出提示,操作如下:
checkBrowser(context){ let info = this.getBrowserInfo()[0].split('/'); let browser = info[0]; let version = info[1]; if(browser==='chrome'){ let flag = this.compareBrowser(version,'61.0'); if(!flag){ context.$router.push('/error'); } } else if(browser==='firefox'){ let flag = this.compareBrowser(version,'55.0'); if(!flag){ context.$router.push('/error'); } } else if(browser==='safari'){ let flag = this.compareBrowser(version,'8.08'); if(!flag){ context.$router.push('/error'); } } },注:上述方法是在vue2.0下调用比较函数对浏览器版本进行判断,当版本低于指定版本时进行页面跳转;
相关文章推荐
- JS获取当前使用的浏览器名字以及版本号实现方法
- 各种浏览器下用JS获取文件域的文件路径的方法/PHP获取用户浏览器和操作系统版本名称
- js智能获取浏览器版本UA信息的方法
- js获取浏览器滚动条垂直滚动距离scrollTop的兼容方法
- js获取浏览器版本号
- JS获取当前操作系统与浏览器名称
- JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
- Js与Jq 获取浏览器和对象值的方法
- Js 获取、判断浏览器版本信息的简单方法
- 一个检测浏览器名称,版本号的js
- JS获取当前使用的浏览器名字以及版本号
- js动态获取虚拟目录名称 相当于服务端ResolveUrl("")方法(转载)
- js 获取屏幕各种宽高的方法(浏览器兼容)
- JS获取当前使用的浏览器名字以及版本号
- js 获取屏幕各种宽高的方法(浏览器兼容)
- 原生JS 获取浏览器、窗口、元素等尺寸的方法及注意事项
- 浏览器页面区域大小的js获取方法
- 浏览器页面区域大小的js获取方法
- JS获取当前使用的浏览器名字以及版本号
- js 获取屏幕各种宽高的方法(浏览器兼容)