封裝好的js判斷操作系統(tǒng)與瀏覽器代碼分享
摘要:
對(duì)于前端開發(fā)我們最重要的工作就是兼容性,系統(tǒng)的兼容性,瀏覽器的兼容性等等。今天分享一個(gè)我在項(xiàng)目中封裝的判斷操作系統(tǒng)與瀏覽器的方法。
操作系統(tǒng):
var os = (function() { var UserAgent = navigator.userAgent.toLowerCase(); return { isIpad : /ipad/.test(UserAgent), isIphone : /iphone os/.test(UserAgent), isAndroid : /android/.test(UserAgent), isWindowsCe : /windows ce/.test(UserAgent), isWindowsMobile : /windows mobile/.test(UserAgent), isWin2K : /windows nt 5.0/.test(UserAgent), isXP : /windows nt 5.1/.test(UserAgent), isVista : /windows nt 6.0/.test(UserAgent), isWin7 : /windows nt 6.1/.test(UserAgent), isWin8 : /windows nt 6.2/.test(UserAgent), isWin81 : /windows nt 6.3/.test(UserAgent) }; }());
如果要判斷系統(tǒng)是否是iPad,只需要判斷if(os.isIpad) {}.
瀏覽器:
var bw = (function() { var UserAgent = navigator.userAgent.toLowerCase(); return { isUc : /ucweb/.test(UserAgent), // UC瀏覽器 isChrome : /chrome/.test(UserAgent.substr(-33,6)), // Chrome瀏覽器 isFirefox : /firefox/.test(UserAgent), // 火狐瀏覽器 isOpera : /opera/.test(UserAgent), // Opera瀏覽器 isSafire : /safari/.test(UserAgent) && !/chrome/.test(UserAgent), // safire瀏覽器 is360 : /360se/.test(UserAgent), // 360瀏覽器 isBaidu : /bidubrowser/.test(UserAgent), // 百度瀏覽器 isSougou : /metasr/.test(UserAgent), // 搜狗瀏覽器 isIE6 : /msie 6.0/.test(UserAgent), // IE6 isIE7 : /msie 7.0/.test(UserAgent), // IE7 isIE8 : /msie 8.0/.test(UserAgent), // IE8 isIE9 : /msie 9.0/.test(UserAgent), // IE9 isIE10 : /msie 10.0/.test(UserAgent), // IE10 isIE11 : /msie 11.0/.test(UserAgent), // IE11 isLB : /lbbrowser/.test(UserAgent), // 獵豹瀏覽器 isWX : /micromessenger/.test(UserAgent), // 微信內(nèi)置瀏覽器 isQQ : /qqbrowser/.test(UserAgent) // QQ瀏覽器 }; }());
]
小結(jié):
瀏覽器都是本人親自測試的,可能會(huì)有問題的是chrome瀏覽器,因?yàn)榇蟛糠譃g覽器都是使用WebKit內(nèi)核,所以我就把chrome的navigator截取出來區(qū)分。如果以后chrome的navigator的信息位置或者chrome之后的長度發(fā)生改變就容易出現(xiàn)問題,但目前來看是可以的。
現(xiàn)在因?yàn)槭謾C(jī)UC瀏覽器經(jīng)常屏蔽百度的廣告,但對(duì)google廣告不屏蔽,我們可以加入判斷是否為UC瀏覽器,不是就顯示百度廣告,是就顯示google的廣告
if(navigator.userAgent.indexOf('UCBrowser') > -1) { alert("uc瀏覽器"); }else{ //不是uc瀏覽器執(zhí)行的操作 }
其實(shí)具體的瀏覽器的一些特殊的操作可以通過
JS獲取瀏覽器信息
瀏覽器代碼名稱:navigator.appCodeName
瀏覽器名稱:navigator.appName
瀏覽器版本號(hào):navigator.appVersion
對(duì)Java的支持:navigator.javaEnabled()
MIME類型(數(shù)組):navigator.mimeTypes
系統(tǒng)平臺(tái):navigator.platform
插件(數(shù)組):navigator.plugins
用戶代理:navigator.userAgent
- JS如何判斷瀏覽器類型和詳細(xì)區(qū)分IE各版本瀏覽器
- 利用JavaScript判斷瀏覽器類型及版本
- js根據(jù)手機(jī)客戶端瀏覽器類型,判斷跳轉(zhuǎn)官網(wǎng)/手機(jī)網(wǎng)站多個(gè)實(shí)例代碼
- js/jquery判斷瀏覽器類型的方法小結(jié)
- js判斷當(dāng)前瀏覽器類型,判斷IE瀏覽器方法
- 利用js判斷瀏覽器類型(是否為IE,Firefox,Opera瀏覽器)
- js如何判斷不同系統(tǒng)的瀏覽器類型
- js判斷手機(jī)瀏覽器操作系統(tǒng)和微信瀏覽器的方法
- 利用Javascript判斷操作系統(tǒng)的類型實(shí)現(xiàn)不同操作系統(tǒng)下的兼容性
- JS判斷瀏覽器類型與操作系統(tǒng)的方法分析
相關(guān)文章
淺析JavaScript中的變量復(fù)制、參數(shù)傳遞和作用域鏈
這篇文章主要介紹了淺析JavaScript中的變量復(fù)制、參數(shù)傳遞和作用域鏈 的相關(guān)資料,需要的朋友可以參考下2016-01-01javascript獲取wx.config內(nèi)部字段解決微信分享
這篇文章主要介紹了javascript獲取wx.config內(nèi)部字段解決微信分享,需要的朋友可以參考下2016-03-03總結(jié)兩個(gè)Javascript的哈稀對(duì)象的一些編程技巧
總結(jié)兩個(gè)Javascript的哈稀對(duì)象的一些編程技巧...2007-04-04javascript 延遲加載技術(shù)(lazyload)簡單實(shí)現(xiàn)
延遲加載技術(shù)(簡稱lazyload)并不是新技術(shù), 它是js程序員對(duì)網(wǎng)頁性能優(yōu)化的一種方案.2011-01-01基于Node.js的JavaScript項(xiàng)目構(gòu)建工具gulp的使用教程
也許你使用過grunt,那么這里來安利gulp的話就更加不會(huì)陌生了,下面我們就來看一下基于Node.js的JavaScript項(xiàng)目構(gòu)建工具gulp的使用教程2016-05-05深入理解JavaScript系列(29):設(shè)計(jì)模式之裝飾者模式詳解
這篇文章主要介紹了深入理解JavaScript系列(29):設(shè)計(jì)模式之裝飾者模式詳解,裝飾者用用于包裝同接口的對(duì)象,不僅允許你向方法添加行為,而且還可以將方法設(shè)置成原始對(duì)象調(diào)用(例如裝飾者的構(gòu)造函數(shù)),需要的朋友可以參考下2015-03-03js中hasOwnProperty的屬性及實(shí)例用法詳解
在本篇文章里小編給大家整理的是一篇關(guān)于js中hasOwnProperty的屬性及實(shí)例用法詳解內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)下。2021-11-11ie8 不支持new Date(2012-11-10)問題的解決方法
使用JS的時(shí)候也碰到了如下問題,后來經(jīng)過修改,在IE8環(huán)境里,下面的代碼是可用的,下面與大家分享下ie8 不支持new Date的解決方法,有類似問題的朋友可以參考下2013-07-07