在javascript中直接的使用
navigator.userAgent
就能夠獲取當前瀏覽器的版本等信息,如下是列出來的關於不一樣瀏覽器顯示的值(Windows、Android、iPhone):
IE6
IE7
IE8
IE9
Firefox
Chrome
Opera
Safari
Android自帶瀏覽器
Android版Opera Mobile
Android版Firefox
iPhone自帶Safari
iPhone版Opera Mobile
[總結]
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"字符串
一、若是須要判斷操做系統,方法比較簡單,在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等設備屏幕分辨率的頁面
二、判斷瀏覽器的內核,方法也不困難:
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
轉自珠峯周嘯天javascript