JavaScript 检测浏览器类型和版本号
■知识点
检测浏览器类型和版本就比较容易,用户只需要根据不同浏览器类型匹配特殊信息即可。
■实例设计
【示例1】下面的方法能够检测当前主流浏览器类型,包括IE、Opera、Safari、Chrome和Firefox浏览器。
var ua = navigator.userAgent.toLowerCase ();
var info ={
ie : /msie/.test(ua) && !/opera/.test (ua),
op : /opera/.test(ua〉,
sa : /version.*safari/.test(ua),
ch : /chrome/.test(ua),
ff : /gecko/.test(ua) && !/webkit/.test(ua)
};
在脚本中调用该对象的属性,如果是对应类型浏览器,返回true,否则就返回false。
(info, ie) &&console. log ("IE 浏览器");
(info. op) &&console. log ("Opera 浏览器");
(info. sa) &&console. log ("Safari 浏览器");
(info. ff) &&console. log ("Firefox 浏览器");
(info. ch) &&console. log ("Chrome 浏览器");
【示例2】通过解析navigator对象的userAgent属性可以获得浏览器的完整版本号。针对IE浏览器来说,它是在"MSIE"字符串后面带一个空格,然后跟随版本号及分号。因此,可以设计一个如下的函数获取IE的版本号。
//获取IE浏览器的版本号
//返回数值,显示IE的主版本号
function getIEVer(){
var ua = navigator.userAgent; //获取用户端信息
var b = ua.indexOf ("MSIE "); //检测特殊字符串"MSIE"的位置
if(b < 0){
return 0;
}
return parseFloat(ua.substring(b + 5, ua.indexOf("; ",b) ));//截取版本号,并转换为数值
}
直接调用该函数即可获取当前IE浏览器的版本号。
console.log (getlEVer() ); //返回类似数值:10
IE浏览器版本众多,一般可以使用大于某个数字的形式进行范围匹配,因为浏览器是向后兼容的。
【示例3】使用同样的方法可以检测其他类型浏览器的版本号,下面的示例是检测Firefox浏览器的版本号。
function getFFVer(){
var ua = navigator.userAgent;
var b = ua.indexOf("Firefox/");
if(b < 0) {
return 0;
}
return parseFloat(ua.substring (b + 8,ua.lastlndexOf("\ .")));
}
console.log (getFFVer () ) ; //返回类似数值: 64
对于Opera等浏览器,可以使用navigator.userAgent属性来获取版本号,只不过其用户端信息与IE有所不同,如Opera/9.02 (Windows NT 5.1; U; en),根据这些格式可以获取其版本号。
点击加载更多评论>>