腾讯云618限量抢购

JavaScript 得到用户浏览器信息的实例

最后更新:2012-06-19 22:57阅读:7082

检测 IE 浏览器版本

JavaScript Navigator 对象提供了丰富的用户浏览器信息,利用这些信息,我们可以实现常见的得到浏览器名称以及浏览器版本等功能。但 Navigator 对象提供的一些信息却不能直接使用(如 IE 浏览器版本信息总是 4.0 等),因此要达到目的,需要做适当的改进。

IE6 浏览器虽然一个经典的版本,但在今天已经越来越不符合各项技术的发展了。对 IE6 浏览器的兼容性也困扰着广大的开发人员尤其前端设计人员,造成了不必要的人力物力浪费,在此本站也呼吁还在使用 IE6 版本的同学,请升级到 IE8 及以上版本。

下面提供了一个简单的检测 IE 浏览器版本的例子:

<script language="JavaScript">

function getIEVersion(){ 
    var ua = navigator.userAgent;
    // 检查特殊字串"MSIE"
    var b = ua.indexOf("MSIE ");
    if (b < 0) { 
        return 0;
    }
    // 返回浏览器类型及版本号
    return parseFloat(ua.substring(b + 5, ua.indexOf(";", b)));
}
var IEVer = getIEVersion();
if( IEVer == 0 ){
    alert("您使用的是非 IE 浏览器。");
}else if(IEVer > 6){
    alert("您的浏览器版本较新。")
}else{
    alert("您需要升级您的浏览器版本了!");
}

</script>

说明:由于在实际中,基本只涉及到 IE6 或以下版本的兼容性,因此这个例子没有提供其他浏览器及版本的检测。

检测浏览器类型

虽然 Navigator 对象提供了 appName 属性以取得浏览器的名称,但很遗憾 Firefox、Chrome 等以 Netscape 代码为基础浏览器提供的浏览器名称都是 Netscape。因此使用 navigator.appName 并不能严格区分各个浏览器。

要严格区分各个浏览器,还是要像上面的例子一样,通过 navigator.userAgent 属性包含的具体信息来判断。

<script type="text/javascript">

var ua = navigator.userAgent.toLowerCase();
var info = {
    // IE 浏览器
    ie: /msie/.test(ua) && !/opera/.test(ua),
    // Opera 浏览器
    op: /opera/.test(ua),
    // Safari 浏览器
    sa: /version.*safari/.test(ua),
    // Chrome 浏览器
    ch: /chrome/.test(ua),
    // Firefox浏览器
    ff: /gecko/.test(ua) && !/webkit/.test(ua)
};

// 判断并输出结果
(info.ie) && alert("IE 浏览器");
(info.op) && alert("Opera 浏览器");
(info.sa) && alert("Safari 浏览器");
(info.ff) && alert("Firefox 浏览器");
(info.ch) && alert("Chrome 浏览器");

</script>

本例通过构造对象属性,检测特定字符串来判断具体浏览器。如果需要同时判断浏览器版本,请参考前面 检测 IE 浏览器版本 的例子,对本例 判断结果输出部分 进行适当改进即可。


本章节内容共分 2 部分:
  1. 1. JavaScript Navigator 对象:得到有关浏览器的信息
  2. 2. JavaScript 得到用户浏览器信息的实例
腾讯云618限量抢购