您的位置:首页 > Web前端 > JavaScript

JS验证浏览器版本对IE11的支持

2014-09-16 20:49 447 查看
这里谈一下JS验证浏览器版本的功能模块对IE11兼容问题。(引用他人文章)

一般,旧的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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐