亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JS通過分析userAgent屬性來判斷瀏覽器的類型及版本

2019-11-20 20:53:33
字體:
來源:轉載
供稿:網友

JavaScript是前端開發的主要語言,我們可以通過編寫JavaScript程序來判斷瀏覽器的類型及版本。JavaScript判斷瀏覽器類型一般有兩種辦法,一種是根據各種瀏覽器獨有的屬性來分辨,另 一種是通過分析瀏覽器的userAgent屬性來判斷的。本文對瀏覽器各自的userAgent特點做一分析,并給出判斷方法:

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"字符串

以上對windows、iphone、android三大平臺的主流瀏覽器解析就基本結束了,其他平臺的linux估計至少與android平臺應該類似,而采用了Mac OS的iPad和麥金塔應該與iphone平臺類似,故而暫時先不做解析,也因為手頭沒有那么多設備和操作系統來測試,希望日后能夠補上。

現在的網站產品開發要求跟以前又不一樣了,因為不僅要滿足電腦瀏覽,還需要滿足用戶通過智能手機(這里僅指iphone、android、windows phone等真正的智能手機,blackberry和palm這樣的小眾半智能系統暫時不考慮,至于symbian這個偽智能系統就一邊玩去吧)通過以上三個具有代表性的平臺,也大致可以推測出根據瀏覽器userAgent判斷用戶設備的解決方案了。

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樣式在不同內核渲染效果不同的情況下使用,當然了,同樣的內核在智能手機和電腦等不同設備上渲染結果也不同,這一點也需要注意。

3、判斷瀏覽器useAgent的實際應用舉例:

不同瀏覽器內核對頁面的渲染效果不同,雖然已經有jQuery和Extjs等為我們做了兼容處理,但是依然會有一些細小的差別需要我們單獨處理,此時需要判斷瀏覽器內核;
用戶并不僅僅是通過電腦訪問網站的,隨著智能手機的日益普及還有平板電腦的大行其道,使用這兩者來上網的比例越來越高,怎么辦?平板電腦還好,屏幕大分辨率高,智能手機受限于他的屏幕尺寸和分辨率,雖有強勁的處理能力,也可以完美支持現有的網站,但是為客戶多考慮一點總沒有壞處你說對吧?畢竟通過局部縮放拖拽的方式看網頁很不舒服,這時呢,我們就可以專門為iphone、android這樣的窄條屏幕提供一個專用版本來布局了,一來提升瀏覽體驗,二來降低網絡流量,加快訪問速度;
做訪客流量分析,通過判斷客戶瀏覽器類型并記錄其數量,來優化設計自己的網站,以分別提升其客戶體驗

復制代碼 代碼如下:

<script type="text/javascript">
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([/d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox//([/d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome//([/d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([/d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version//([/d.]+).*safari/)) ? Sys.safari = s[1] : 0;

//以下進行測試
if (Sys.ie) document.write('IE: ' + Sys.ie);
if (Sys.firefox) document.write('Firefox: ' + Sys.firefox);
if (Sys.chrome) document.write('Chrome: ' + Sys.chrome);
if (Sys.opera) document.write('Opera: ' + Sys.opera);
if (Sys.safari) document.write('Safari: ' + Sys.safari);
</script>
或:
KindEditor開源編輯器源碼中的檢測瀏覽器的方法:
KE = {};
KE.browser = (function () {
var ua = navigator.userAgent.toLowerCase();
return {
VERSION:ua.match(/(msie|firefox|webkit|opera)[//:/s](/d+)/) ? RegExp.$2 : "0",
IE:(ua.indexOf("msie") > -1 && ua.indexOf("opera") == -1),
GECKO:(ua.indexOf("gecko") > -1 && ua.indexOf("khtml") == -1),
WEBKIT:(ua.indexOf("applewebkit") > -1),
OPERA:(ua.indexOf("opera") > -1)
};
})();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲乱码一区二区| 日韩欧美在线观看| 国产亚洲视频中文字幕视频| 国产日韩欧美电影在线观看| 亚洲a在线播放| 美女国内精品自产拍在线播放| 日韩av不卡在线| 国产黑人绿帽在线第一区| 日韩专区在线观看| 日韩中文av在线| 色偷偷偷亚洲综合网另类| 国产精品视频久久久久| 欧美成人午夜免费视在线看片| 69国产精品成人在线播放| 亚洲国产日韩精品在线| 亚洲国产福利在线| 人人澡人人澡人人看欧美| 亚洲欧洲在线播放| 欧美日韩一区二区在线| 大胆欧美人体视频| 日韩视频免费大全中文字幕| 亚洲精品成a人在线观看| 欧美日韩国产影院| 欧美成人一二三| www.午夜精品| 久久91亚洲人成电影网站| 日本韩国欧美精品大片卡二| 日本久久精品视频| 日韩视频免费观看| 亚洲综合小说区| 亚洲成色www8888| 国产精品免费久久久久影院| 日产精品久久久一区二区福利| 精品一区二区电影| 在线电影中文日韩| 欧美最猛黑人xxxx黑人猛叫黄| 国产亚洲欧美日韩一区二区| 亚洲男人7777| 欧美最猛性xxxxx免费| 国产日韩欧美在线看| 97精品在线视频| 国产美女精彩久久| 色婷婷亚洲mv天堂mv在影片| 日本精品一区二区三区在线播放视频| 欧美有码在线观看视频| 欧美黑人xxx| 亚洲人永久免费| 亚洲男人天堂久| 国产精品自产拍在线观看| 国产精品亚洲网站| 亚洲欧美日韩久久久久久| 国产精品视频成人| 国产精品久久久久久久久| 久久久久久午夜| 亚洲国产成人久久综合| 欧美极品美女视频网站在线观看免费| 国产精品午夜国产小视频| 亚洲精品国产精品自产a区红杏吧| 亚洲天堂av图片| 日韩中文字幕在线免费观看| 亚洲永久在线观看| 欧美一乱一性一交一视频| 亚洲成人三级在线| 精品女厕一区二区三区| 久久久中精品2020中文| 国产主播精品在线| 操日韩av在线电影| 成人黄在线观看| 亚洲欧美999| 国产精品第三页| 欧美激情第1页| 欧美国产视频一区二区| 久久精品中文字幕| 久久久视频免费观看| 精品国产31久久久久久| 亚洲成人精品久久久| 精品国产乱码久久久久久虫虫漫画| 亚洲女人天堂av| 欲色天天网综合久久| 日韩中文在线中文网在线观看| 欧美大全免费观看电视剧大泉洋| 中文字幕精品久久久久| 91精品视频在线免费观看| 91成人国产在线观看| 97精品国产97久久久久久免费| 久久精品国产一区| 亚洲色图美腿丝袜| 亚洲精品720p| 亚洲91精品在线观看| 国产精品爽爽爽爽爽爽在线观看| 日韩在线视频播放| 国产精品精品一区二区三区午夜版| 亚洲成人中文字幕| 国产精品福利在线观看| 国模精品系列视频| 26uuu另类亚洲欧美日本一| 日韩av在线免费观看| 国产精品自在线| 亚洲第一福利视频| 亚洲精品综合精品自拍| 国产精品户外野外| 91免费人成网站在线观看18| 亚洲日韩欧美视频| 国产精品美女免费视频| 7777kkkk成人观看| 精品爽片免费看久久| 97热在线精品视频在线观看| 欧美激情中文网| 成人看片人aa| 亚洲视频免费一区| 久久久女人电视剧免费播放下载| 91网站免费观看| 欧美成人免费一级人片100| 正在播放亚洲1区| 久久久久久av| 97国产精品人人爽人人做| 精品国产乱码久久久久久婷婷| 中文字幕精品久久久久| 亚洲综合在线小说| 国产精品99一区| 国产精品美女免费| 精品网站999www| 亚洲精品电影在线| 日韩中文字幕av| 亚洲人成网站999久久久综合| 亚洲一区二区黄| 亚洲精品国产suv| 国产精品三级久久久久久电影| 国产91精品久| 久久久久久12| 欧美精品videofree1080p| 欧美午夜片欧美片在线观看| 992tv成人免费视频| 成人免费在线网址| 成人中文字幕+乱码+中文字幕| 亚洲午夜未删减在线观看| 日韩中文字幕免费看| 久久影视电视剧免费网站清宫辞电视| 亚洲国内精品在线| 懂色av中文一区二区三区天美| 亚洲美女免费精品视频在线观看| 91精品国产91久久| 亚洲欧美一区二区精品久久久| 九九热最新视频//这里只有精品| 91精品国产自产91精品| 国产成人综合精品| 亚洲女在线观看| 欧美激情xxxx| 国产69精品久久久久9| 亚洲欧美激情在线视频| 高清一区二区三区日本久| 成人免费福利视频| 欧美色图在线视频| 97香蕉超级碰碰久久免费的优势| 在线播放日韩精品| 久久精品久久久久电影| 国产午夜精品一区二区三区| 日韩中文在线观看| 亚洲人成五月天| 久久久久久91香蕉国产| 欧美性xxxx极品高清hd直播| 国产精选久久久久久| 在线播放亚洲激情| 伊人久久综合97精品|