javascript判断浏览器的版本

在javascript中直接的使用navigator.userAgent就可以获取当前浏览器的版本等信息,以下是列出来的关于不同浏览器显示的值(Windows、Android、iPhone):
IE6
javascript判断浏览器的版本
 
javascript判断浏览器的版本
javascript判断浏览器的版本
IE7
javascript判断浏览器的版本
javascript判断浏览器的版本
IE8
javascript判断浏览器的版本
javascript判断浏览器的版本
IE9
javascript判断浏览器的版本
javascript判断浏览器的版本
Firefox
 javascript判断浏览器的版本
javascript判断浏览器的版本
Chrome
 javascript判断浏览器的版本
javascript判断浏览器的版本
Opera
 javascript判断浏览器的版本
javascript判断浏览器的版本
Safari
 javascript判断浏览器的版本
javascript判断浏览器的版本
Android自带浏览器
 javascript判断浏览器的版本
javascript判断浏览器的版本
Android版Opera Mobile
 javascript判断浏览器的版本
javascript判断浏览器的版本
Android版Firefox
 javascript判断浏览器的版本
javascript判断浏览器的版本
iPhone自带Safari
 javascript判断浏览器的版本
javascript判断浏览器的版本
iPhone版Opera Mobile
 javascript判断浏览器的版本
javascript判断浏览器的版本
 
[总结]
Windows操作系统浏览器系列:
  • IE浏览器系列:
    特征表现:均以 "mozilla/" 开头,"msie x.0;" 中的x表示其版本;
    判断方法:粗略判断可以只检索 "msie x.0;" 字符串即可,严格判断可检索 "mozilla/x.0 (compatibal; msie x.0; windows nt",不过一般没有这个必要
  • Windows版Firefox:
    特征表现:以"mozilla/x.0"开头,包含"windows nt","gecko/"和"firefox/" ;
    判断方法:粗略判断可以只检索 "firefox/"和"windows nt" 字符串,严格判断可以检索"mozilla/" ,"windows nt","gecko/"和"firefox/" 四个字符串;
  • Windows版Chrome:
    特征表现: 以"mozilla/x.0"开头,包含"windows nt","chrome/",同时包含"applewebkit/","safari/";
    判断方法:粗略判断可以只检索 "windows nt"和"chrome/"字符串,严格判断可以同时检索 "mozilla/" ,"windows nt","applewebkit/","safari/","chrome/" 五个字符串;
  • Windows版Opera:
    特征表现:以"opera/"开头,含有"windows nt","presto/" 字符串;
    判断方法:粗略判断只检索 "windows nt"和"opera/"字符串,严格判断同时检索 "opera/","windows nt" 和 "presto/";
  • Windows版Safari:
    特征表现:以"mozilla/"开头,同时含有"windows nt","applewebkit/","safari/";
    判断方法:粗略判断可以检索含有 "windows nt","safari/" 同时不包含 "chrome/",严格判断需要同时含有"mozilla/","windows nt","applewebkit/","safari/"但是不包含"chrome/";
  • 小结:Windows操作系统上的浏览器userAgent均包含"windows nt"字符串来表征windows操作系统。
iPhone平台浏览器系列:
  • iPhone自带safari:
    特征表现:以"mozilla/"开头,含有"iphone"字符串,同时含有 "mobile/","safari/"字符串;
    判断方法:粗略判断只检索 "iphone"和"safari/"字符串,严格判断则要同时包含 "mozilla/","iphone","mobile/","safari/"四个字符串
  • iPhone版Opera Mobile:
    特征表现: 以"opera/"开头,含有"iphone"字符串,同时含有 "opera mini/","presto/"字符串;
    判断方法:粗略判断只检索 "iphone"和"opera/"字符串,严格判断则要同时包含 "opera/","iphone","opera mini/","presto/"四个字符串
  • 小结:iPhone手机上的浏览器userAgent均包含"iphone"字符串
Android平台浏览器系列:
  • Android自带浏览器(有人说其实是就chrome,但google自己未做表示,且还在开发一个Android上运行的Chrome to Phone):
    特征表现: 以"mozilla/"开头,含有"android"和"linux" 字符串,同时含有 "applewebkit/","mobile safari/"字符串;
    判断方法:因为还不知道Android上未来会不会有独立的safari(估计不会了),所以建议直接严格判断,检索 "mozilla/","android","linux","applewebkit/","mobile safari/"五个字符串
  • Android版Opera Mobile:
    特征表现: 以"opera/"开头,含有"android"和"linux" 字符串,同时含有 "opera mobi/","presto/"字符串;
    判断方法:粗略判断只检索 "android"和"opera/",严格判断则要同时包含"opera/","android","linux","opera mobi/","presto/"五个字符串
  • Android版Firefox:
    特征表现:以"mozilla/"开头,含有"android"和"linux" 字符串,同时含有 "firefox/","gecko/","fennec/"字符串; 
    判断方法:粗略判断只检索 "android"和"firefox/",严格判断则要同时包含"mozilla/","android","linux","firefox/","gecko/","fennec/"六个字符串
  • 小结:Android平台上的浏览器userAgent均包含"android"和"linux"字符串
1、如果需要判断操作系统,方法比较简单,在userAgent里面检索以下字符串:
     含有"windows nt":显而易见了,windows操作系统,nt后面的版本号可以判断OS版本;
     含有"mac":苹果的Mac OS X或者其他Mac OS内核的系统;
     含有"iphone":苹果iphone手机专有的,一般情况下也应该含有"mac";
     含有"ipad":苹果iPad平板电脑(资料表明iPad的浏览器userAgent同时含有"mac","iphone","ipad");
     含有"linux":Linux操作系统或者其他以linux作为内核的操作系统;
     含有"android":谷歌的Android操作系统,有可能是智能手机,也有可能是安卓版的平板电脑哦,一般情况下android平台上的userAgent也应该包含"linux";
     含有"unix","sunos","bsd"三者之一:Unix系统,其实对这个系统的用户体验问题,目前几乎可以不用考虑了;
     含有"ubuntu":ubuntu定制版的linux
     你也看到了,判断操作系统及其版本其实并不一直有用,但总有能用到的地方,比如开发专门针对iphone、ipad、android等设备屏幕分辨率的页面
 
2、判断浏览器的内核,方法也不困难:
      IE(Trident)内核(IE for Mac, IEs4Linux之类的就不用说了,只考虑windows下的):以"mozilla/"开头,含有"windows nt"和"msie"字符串;
      Firefox(Gecko)内核:以"mozilla/"开头,含有"firefox/"和"gecko/"字符串的就是啦,其中Android版的还带有"fennec/"字符串;
      Opera内核:以"opera/"开头,含有"presto/"字符串,其中iphone版还带有"opera mini/",Android版也带有"opera mobi/";
      Webkit内核:以"mozilla/"开头,含有"applewebkit/"和"safari/"字符串,其中带有"chrome/"的就是Chrome浏览器,不带的就是Safari或其他;
     浏览器内核才是解决兼容性的关键问题所在,然而,这个兼容性问题已经有jQuery和Extjs等框架帮你解决了,因此这个判断只针对个别页面的CSS样式在不同内核渲染效果不同的情况下使用,当然了,同样的内核在智能手机和电脑等不同设备上渲染结果也不同,这一点也需要注意。
 
 
 
 
navigator.appVersion

转自珠峰周啸天

上一篇:【学习篇:他山之石,把玉攻】Ajax请求安全性讨论


下一篇:本地连接 vmware服务器