一、JavaScript判断浏览器类型一般有两种办法:一种是根据各种浏览器独有的属性来分辨;另 一种是通过分析浏览器的userAgent属性来判断的。二、Windows操作系统浏览器系列:1、IE浏览器系列:特征表现:均以 "mozilla/" 开头,"msie x.0;" 中的x表示其版本;判断方法:粗略判断可以只检索 "msie x.0;" 字符串即可,严格判断可检索 "mozilla/x.0 (compatibal; msie x.0; windows nt",不过一般没有这个必要2、Windows版Firefox:特征表现:以"mozilla/x.0"开头,包含"windows nt","gecko/"和"firefox/" ;判断方法:粗略判断可以只检索 "firefox/"和"windows nt" 字符串,严格判断可以检索"mozilla/" ,"windows nt","gecko/"和"firefox/" 四个字符串;3、Windows版Chrome:特征表现: 以"mozilla/x.0"开头,包含"windows nt","chrome/",同时包含"applewebkit/","safari/";判断方法:粗略判断可以只检索 "windows nt"和"chrome/"字符串,严格判断可以同时检索 "mozilla/" ,"windows nt","applewebkit/","safari/","chrome/" 五个字符串;4、Windows版Opera:特征表现:以"opera/"开头,含有"windows nt","presto/" 字符串;判断方法:粗略判断只检索 "windows nt"和"opera/"字符串,严格判断同时检索 "opera/","windows nt" 和 "presto/";5、Windows版Safari:特征表现:以"mozilla/"开头,同时含有"windows nt","applewebkit/","safari/";判断方法:粗略判断可以检索含有 "windows nt","safari/" 同时不包含 "chrome/",严格判断需要同时含有"mozilla/","windows nt","applewebkit/","safari/"但是不包含"chrome/"; Windows操作系统上的浏览器userAgent均包含"windows nt"字符串来表征windows操作系统。三、iPhone平台浏览器系列:1、iPhone自带safari:特征表现:以"mozilla/"开头,含有"iphone"字符串,同时含有 "mobile/","safari/"字符串;判断方法:粗略判断只检索 "iphone"和"safari/"字符串,严格判断则要同时包含 "mozilla/","iphone","mobile/","safari/"四个字符串2、iPhone版Opera Mobile:特征表现: 以"opera/"开头,含有"iphone"字符串,同时含有 "opera mini/","presto/"字符串;判断方法:粗略判断只检索 "iphone"和"opera/"字符串,严格判断则要同时包含 "opera/","iphone","opera mini/","presto/"四个字符串iPhone手机上的浏览器userAgent均包含"iphone"字符串四、Android平台浏览器系列:1、Android自带浏览器特征表现: 以"mozilla/"开头,含有"android"和"linux" 字符串,同时含有 "applewebkit/","mobile safari/"字符串;判断方法:因为还不知道Android上未来会不会有独立的safari(估计不会了),所以建议直接严格判断,检索 "mozilla/","android","linux","applewebkit/","mobile safari/"五个字符串2、Android版Opera Mobile:特征表现: 以"opera/"开头,含有"android"和"linux" 字符串,同时含有 "opera mobi/","presto/"字符串;判断方法:粗略判断只检索 "android"和"opera/",严格判断则要同时包含"opera/","android","linux","opera mobi/","presto/"五个字符串3、Android版Firefox:特征表现:以"mozilla/"开头,含有"android"和"linux" 字符串,同时含有 "firefox/","gecko/","fennec/"字符串; 判断方法:粗略判断只检索 "android"和"firefox/",严格判断则要同时包含"mozilla/","android","linux","firefox/","gecko/","fennec/"六个字符串 Android平台上的浏览器userAgent均包含"android"和"linux"字符串
jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 如果要全面支持 IE,并混合使用 jQuery 1.9 和 2.0, 官方的解决方jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 如果要全面支持 IE,并混合使用 jQuery 1.9 和 2.0, 官方的解决方案是:<!--[if lt IE 9]<script src='jquery-1.9.0.js'</script<![endif]--<!--[if gte IE 9]<script src='jquery-2.0.0.js'</script<![endif]--零度科技从长久来看,这样有利于在复杂情况下根据浏览器特性进行分别处理, 而不是简单的检测浏览器类型和版本。 但目前很多旧程序的移植恐怕无法直接过渡为根据浏览器支持特性, 所以在网上找了一些能够直接替换的解决办法。判断浏览器类型:内容来自零度科技$.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase());$.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCase());$.browser.opera = /opera/.test(navigator.userAgent.toLowerCase());$.browser.msie = /msie/.test(navigator.userAgent.toLowerCase());等号后面的表达式返回的就是 true/false, 可以直接用来替换原来的$.browser.msie等。检查是否为 IE6// Oldif ($.browser.msie && 7 $.browser.version) {}// Newif ('undefined' == typeof(document.body.style.maxHeight)) {}检查是否为 IE 6-8if (!$.support.leadingWhitespace) {}