JS验证浏览器版本对IE11的支持
2014-09-16 20:49
447 查看
这里谈一下JS验证浏览器版本的功能模块对IE11兼容问题。(引用他人文章)
一般,旧的JS验证浏览器版本的功能模块,例如。
该验证模块是通过PC客户端上的用户代理头navigator.userAgent信息进行检测的。在IE版本检测部分,
通过:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)。中MSIE 6.0字段检测。但在IE11,取消了MSIE X.X 信息;所以该检测代码在IE11中会失效。
在取消MSIE X.X 信息后,IE11还存在从IE9引入的Trident标识;这样可以直接通过Trident标识检测出IE11。
IE11的版本信息部分为:Mozilla/5.0 (windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
修改后JS验证浏览器版本的功能模块如下:
写法1:
写法2:
一般,旧的JS验证浏览器版本的功能模块,例如。
<script type="text/javascript"> window.GLOBAL = { //浏览器版本信息 BROWSER : (function() { var u = window.navigator.userAgent.toLocaleLowerCase(), msie = /(msie) ([\d.]+)/,<span style="white-space:pre"> </span>/*IE*/ chrome = /(chrome)\/([\d.]+)/,<span style="white-space:pre"> </span>/*谷歌*/ firefox = /(firefox)\/([\d.]+)/,<span style="white-space:pre"> </span>/*火狐*/ safari = /(safari)\/([\d.]+)/,<span style="white-space:pre"> </span>/*苹果自带的一种浏览器*/ opera = /(opera)\/([\d.]+)/,<span style="white-space:pre"> </span>/*挪威的一款浏览器*/ b = u.match(msie)||u.match(chrome)||u.match(firefox)||u.match(safari)||u.match(opera); return {NAME: b[1], VERSION: parseInt(b[2])}; })() } </script>
该验证模块是通过PC客户端上的用户代理头navigator.userAgent信息进行检测的。在IE版本检测部分,
通过:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)。中MSIE 6.0字段检测。但在IE11,取消了MSIE X.X 信息;所以该检测代码在IE11中会失效。
在取消MSIE X.X 信息后,IE11还存在从IE9引入的Trident标识;这样可以直接通过Trident标识检测出IE11。
IE11的版本信息部分为:Mozilla/5.0 (windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
修改后JS验证浏览器版本的功能模块如下:
写法1:
<script type="text/javascript"> window.GLOBAL = { //浏览器版本信息 BROWSER : (function() { var u = window.navigator.userAgent.toLocaleLowerCase(), msie = /(msie) ([\d.]+)/, chrome = /(chrome)\/([\d.]+)/, firefox = /(firefox)\/([\d.]+)/, safari = /(safari)\/([\d.]+)/, opera = /(opera)\/([\d.]+)/, ie11 = /(trident)\/([\d.]+)/, b = u.match(msie)||u.match(chrome)||u.match(firefox)||u.match(safari)||u.match(opera)||u.match(ie11); return {NAME: b[1], VERSION: parseInt(b[2])}; })() } </script>
写法2:
function CheckBrowser() { ua = navigator.userAgent; ua = ua.toLocaleLowerCase(); if (ua.match(/msie/) != null || ua.match(/trident/) != null) { browserType = "IE"; browserVersion = ua.match(/msie ([\d.]+)/) != null ? ua.match(/msie ([\d.]+)/)[1] : ua.match(/rv:([\d.]+)/)[1]; } else if (ua.match(/firefox/) != null) { browserType = "火狐"; } else if (ua.match(/opera/) != null) { browserType = "欧朋"; } else if (ua.match(/chrome/) != null) { browserType = "谷歌"; } else if (ua.match(/safari/) != null) { browserType = "Safari"; } var arr = new Array(browserType, browserVersion); return arr; }
相关文章推荐
- js检测各个浏览器版本,包括IE11
- atitit.js 各版本 and 新特性跟浏览器支持报告
- atitit.js 各版本 and 新特性跟浏览器支持报告
- 让低版本浏览器支持input的placeholder属性(js方法)
- JS验证浏览器是否支持HTML5
- javascript/js 检测浏览器类型和版本,检查浏览器是否支持flash,检查flash版本一站搞定~
- JS代码判断浏览器版本,支持IE6,IE7,IE8,IE9!三种方法!
- 判定浏览器是否支持JS脚本和比是否比IE6更的高版本
- Spring-mvc+SockJS实现即时通讯教程,并提供各种浏览器版本的支持
- [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器
- JS检测浏览器版本信息(包含IE11),并动态添加样式
- 让低版本的浏览器也支持hover(JS实现)
- 【078】docute.js的v3.4.8版本在IE11下出现【对象不支持“from”属性或方法】错误的解决办法
- JS判断浏览器版本(已解决IE11版本为Mozilla问题)
- JS代码判断浏览器版本,支持IE6,IE7,IE8,IE9!三种方法!
- js检测浏览器版本代码,兼容ie11
- 让低版本浏览器支持input的placeholder属性(js方法)
- [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器
- jQuery formValidator表单验证插件2.9.3版本已经支持对所有客户端控件的验证
- 浏览器禁用退格键和回车,文本区域支持回车换行 IE6,Firefox2.X,Firefox3.x版本下测试通过