PHP程序员站--PHP编程开发平台
 当前位置:主页 >> 网页制作 >> Javascript >> 

javascript检测浏览器类型和版本

javascript检测浏览器类型和版本

来源:PHP程序员站  作者:PHP程序员站  发布时间:2011-06-27
如果对javascript了解不是特别深入的话,很容易就会写出不兼容的代码(就像我),这时候就得判断浏览器了。比如事件侦听、一些鼠标和键盘事件、Range等,一些都会不一样.下面列出几种常用的检测浏览器方法,以飨观众! 对象/特征检测法 该方法是一种判断浏览器能力(而非浏览

如果对javascript了解不是特别深入的话,很容易就会写出不兼容的代码(就像我),这时候就得判断浏览器了。比如事件侦听、一些鼠标和键盘事件、Range等,一些都会不一样.下面列出几种常用的检测浏览器方法,以飨观众!

对象/特征检测法

该方法是一种判断浏览器能力(而非浏览器的确切型号)的通用方法。大部分JS专家认为这个方法最合适,因为他们认为按照该方法所编写的脚本是经得起未来考验的。

//获取IE浏览器的版本号
//返回数值,显示IE的主版本号
functiongetIEVer() {
varua = navigator.userAgent;
//获取用户端信息
varb = ua.indexOf("MSIE ");
//检测特殊字符串"MSIE "的位置
if(b < 0) {
return0;
}
returnparseFloat(ua.substring(b + 5, ua.indexOf(";", b))
);
//截取版本号字符串,并转换为数值
}
alert(getIEVer());
//返回数值8(我的IE8)
如果更关注浏览器的能力而不在乎它实际的身份,就可以使用这种方法。

user-agent字符串检测法

user-agent字符串提供了关于Web浏览器的大量信息,包括浏览器的名称和版本。

varua = navigator.userAgent.toLowerCase();
//获取用户端信息
varinfo = {
 ie: /msie/.test(ua) && !/opera/.test(ua),//匹配IE浏览器
 op: /opera/.test(ua),//匹配Opera浏览器
 sa: /version.*safari/.test(ua),//匹配Safari浏览器
 ch: /chrome/.test(ua),//匹配Chrome浏览器
 ff: /gecko/.test(ua) && !/webkit/.test(ua)//匹配Firefox浏览器
};
(info.ie) && alert("IE浏览器");
(info.op) && alert("Opera浏览器");
(info.sa) && alert("Safari浏览器");
(info.ff) && alert("Firefox浏览器");
(info.ch) && alert("Chrome浏览器");
通常我们做得最多的,就是判断是否是IE了,其它几种浏览器一般都会符合标准.有些客户只需要符合IE和FF就已经满足了.那么我们可以这样做:

varisIE = (navigator.appName =="Microsoft Internet Explorer");
判断IE远远不止上面一种方法,可以使用IE更多特有的东西,如:window.ActiveXObject,document.all等,这些都属于对象/特征检测法了!通常要在不同的浏览器上写不同的样式(因为IE样式解析也各有不同),那就得判断版本了.可以这样做

//获取IE浏览器的版本号
//返回数值,显示IE的主版本号
functiongetIEVer() {
varua = navigator.userAgent;//获取用户端信息
varb = ua.indexOf("MSIE ");//检测特殊字符串"MSIE "的位置
if(b < 0) {
return0;
}
returnparseFloat(ua.substring(b + 5, ua.indexOf(";", b))
);
//截取版本号字符串,并转换为数值
}
alert(getIEVer());
//返回数值7


检测操作系统:

varisWin = (navigator.userAgent.indexOf("Win") != -1);//如果是Windows系统,则返回true
varisMac = (navigator.userAgent.indexOf("Mac") != -1);//如果是Macintosh系统,则返回true
varisUnix = (navigator.userAgent.indexOf("X11") != -1);//如果是Unix系统,则返回true
varisLinux = (navigator.userAgent.indexOf("Linux") != -1);//如果是Linux系统,则返回true


延伸阅读:
php检测域名是否被注册事例
用php来检测proxy
利用js检测浏览器分辨率,来调用相应的CSS
php通过文件头检测文件类型
PHP版UTF-8文件BOM自动检测移除程序
PHP 检测手机浏览器的代码
12道PHP类型检测题目
javascript检测浏览器方法
jQuery 对ie6的版本检测错误及修正方法
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号