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

本文探讨了旧版JS浏览器版本检测代码在IE11上存在的兼容性问题,并提出了解决方案。通过增加对Trident标识的支持,可以准确地识别IE11版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里谈一下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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值