JS判斷瀏覽器類型與操作系統(tǒng)的方法分析
本文實(shí)例講述了JS判斷瀏覽器類型與操作系統(tǒng)的方法。分享給大家供大家參考,具體如下:
navigator.userAgent : userAgent 屬性是一個(gè)只讀的字符串,聲明了瀏覽器用于 HTTP 請(qǐng)求的用戶代理頭的值。
navigator.platform : platform 屬性是一個(gè)只讀的字符串,聲明了運(yùn)行瀏覽器的操作系統(tǒng)和(或)硬件平臺(tái)。
判斷瀏覽器類型
IE瀏覽器
ie = ua.match( /MSIEs([d.]+)/ ) || ua.match( /(?:trident)(?:.*rv:([w.]+))?/i ),
IE瀏覽器版本號(hào)
/msie 8.0/.test(navigator.userAgent.toLowerCase())
微信瀏覽器
/micromessenger/.test(navigator.userAgent.toLowerCase())
chrome
/chrome/.test(navigator.userAgent.toLowerCase())
firefox
/safari/.test(navigator.userAgent.toLowerCase())
opera
/micromessgenger/.test(navigator.userAgent.toLowerCase())
判斷操作系統(tǒng)類型
win操作系統(tǒng)
navigator.platform == 'Win32' navigator.platform == 'Windows'
mac操作系統(tǒng)
navigator.platform == 'Mac68K' navigator.platform == 'MacPPC' navigator.platform == 'Macintosh' navigator.platform == 'MacIntel'
andorid操作系統(tǒng)
if(/Linux/i.test(navigator.userAgent)){ if(/android/i.test(navigator.userAgent.toLowerCase())){ return 'android'; } }/** * @description 簡(jiǎn)單的瀏覽器檢查結(jié)果。 * * * `webkit` webkit版本號(hào),如果瀏覽器為非webkit內(nèi)核,此屬性為`undefined`。 * * `chrome` chrome瀏覽器版本號(hào),如果瀏覽器為chrome,此屬性為`undefined`。 * * `ie` ie瀏覽器版本號(hào),如果瀏覽器為非ie,此屬性為`undefined`。**暫不支持ie10+** * * `firefox` firefox瀏覽器版本號(hào),如果瀏覽器為非firefox,此屬性為`undefined`。 * * `safari` safari瀏覽器版本號(hào),如果瀏覽器為非safari,此屬性為`undefined`。 * * `opera` opera瀏覽器版本號(hào),如果瀏覽器為非opera,此屬性為`undefined`。 * * @property {Object} [browser] */ browser: (function( ua ) { var ret = {},webkit = ua.match( /WebKit/([d.]+)/ ),chrome = ua.match( /Chrome/([d.]+)/ ) || ua.match( /CriOS/([d.]+)/ ),ie = ua.match( /MSIEs([d.]+)/ ) || ua.match( /(?:trident)(?:.*rv:([w.]+))?/i ),firefox = ua.match( /Firefox/([d.]+)/ ),safari = ua.match( /Safari/([d.]+)/ ),opera = ua.match( /OPR/([d.]+)/ ); webkit && (ret.webkit = parseFloat( webkit[ 1 ] )); chrome && (ret.chrome = parseFloat( chrome[ 1 ] )); ie && (ret.ie = parseFloat( ie[ 1 ] )); firefox && (ret.firefox = parseFloat( firefox[ 1 ] )); safari && (ret.safari = parseFloat( safari[ 1 ] )); opera && (ret.opera = parseFloat( opera[ 1 ] )); return ret; })( navigator.userAgent ), /** * @description 操作系統(tǒng)檢查結(jié)果。 * * * `android` 如果在android瀏覽器環(huán)境下,此值為對(duì)應(yīng)的android版本號(hào),否則為`undefined`。 * * `ios` 如果在ios瀏覽器環(huán)境下,此值為對(duì)應(yīng)的ios版本號(hào),否則為`undefined`。 * @property {Object} [os] */ os: (function( ua ) { var ret = {},// osx = !!ua.match( /(Macintosh; Intel / ),android = ua.match( /(?:Android);?[s/]+([d.]+)?/ ),ios = ua.match( /(?:iPad|iPod|iPhone).*OSs([d_]+)/ ); // osx && (ret.osx = true); android && (ret.android = parseFloat( android[ 1 ] )); ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, ’.’ ) )); return ret; })( navigator.userAgent ),
PS:這里再為大家提供幾款相關(guān)在線工具供大家參考:
在線瀏覽器信息檢測(cè)工具:http://tools.jb51.net/aideddesign/browser_info
常用瀏覽器(PC,移動(dòng)) user-agent:http://tools.jb51.net/table/useragent
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript事件相關(guān)操作與技巧大全》、《JavaScript頁(yè)面元素操作技巧總結(jié)》、《JavaScript操作DOM技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章:
1. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁(yè)效果(實(shí)例代碼)2. 解決Android studio xml界面無(wú)法預(yù)覽問(wèn)題3. 圖文詳解vue中proto文件的函數(shù)調(diào)用4. 詳解Android studio 動(dòng)態(tài)fragment的用法5. 什么是python的自省6. php模擬實(shí)現(xiàn)斗地主發(fā)牌7. vue 使用localstorage實(shí)現(xiàn)面包屑的操作8. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟9. Vuex localStorage的具體使用10. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)

網(wǎng)公網(wǎng)安備