检测 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 部分:
- JavaScript Navigator 对象:得到有关浏览器的信息
- JavaScript 得到用户浏览器信息的实例

