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. Django中的AutoField字段使用2. Django ORM實(shí)現(xiàn)按天獲取數(shù)據(jù)去重求和例子3. 解決docker與vmware的沖突問(wèn)題4. IntelliJ Idea 2020.1 正式發(fā)布,官方支持中文(必看)5. IntelliJ IDEA設(shè)置自動(dòng)提示功能快捷鍵的方法6. asp.net core應(yīng)用docke部署到centos7的全過(guò)程7. Java 3D的動(dòng)畫(huà)展示(Part1-使用JMF)8. Python基于jieba, wordcloud庫(kù)生成中文詞云9. 如何在vue3.0+中使用tinymce及實(shí)現(xiàn)多圖上傳文件上傳公式編輯功能10. 刪除docker里建立容器的操作方法
