javascript判斷chrome瀏覽器的方法
通過userAgent判斷檢測一下userAgent返回的字符串里面是否包含“Chrome”, 具體怎么檢測是通過indexOf方法進(jìn)行的。
<script type="text/javascript"> var isChrome = window.navigator.userAgent.indexOf("Chrome") !== -1; alert(isChrome); if (isChrome) { alert("是Chrome瀏覽器"); } else { alert("不是Chrome瀏覽器"); } </script>
關(guān)于indexOf方法:
indexOf方法返回一個(gè)整數(shù)值,指出String對(duì)象內(nèi)子字符串的開始位置。即indexOf()括號(hào)內(nèi)所包含的字符在該字符串內(nèi)的位置,在第幾位就返回幾,從0開始記數(shù)。如果有重復(fù)的字符出現(xiàn),以第一個(gè)字符為準(zhǔn)。如果沒有找到子字符串,則返回 -1。
JS通過內(nèi)核判斷各種瀏覽器|區(qū)分360與谷歌(親測可用)
function getBrowserInfo(){ var ua = navigator.userAgent.toLocaleLowerCase(); var browserType=null; if (ua.match(/msie/) != null || ua.match(/trident/) != null) { browserType = "IE"; browserVersion = ua.match(/msie ([\d.]+)/) != null ? ua.match(/msie ([\d.]+)/)[1] : ua.match(/rv:([\d.]+)/)[1]; } else if (ua.match(/firefox/) != null) { browserType = "火狐"; }else if (ua.match(/ubrowser/) != null) { browserType = "UC"; }else if (ua.match(/opera/) != null) { browserType = "歐朋"; } else if (ua.match(/bidubrowser/) != null) { browserType = "百度"; }else if (ua.match(/metasr/) != null) { browserType = "搜狗"; }else if (ua.match(/tencenttraveler/) != null || ua.match(/qqbrowse/) != null) { browserType = "QQ"; }else if (ua.match(/maxthon/) != null) { browserType = "遨游"; }else if (ua.match(/chrome/) != null) { var is360 = _mime("type", "application/vnd.chromium.remoting-viewer"); function _mime(option, value) { var mimeTypes = navigator.mimeTypes; for (var mt in mimeTypes) { if (mimeTypes[mt][option] == value) { return true; } } return false; } if(is360){ browserType = '360'; }else{ $('html').css("zoom",".80"); } }else if (ua.match(/safari/) != null) { browserType = "Safari"; } }
只有原生Chrome中存在一種MimeType“application/vnd.chromium.remoting-viewer”,由此可以判斷瀏覽器是加殼Chrome或是原生Chrome。
再如,只有IE內(nèi)核的瀏覽器存在ActiveXObject對(duì)象。由此可以判斷是否為IE瀏覽器
判斷瀏覽器類型,我們需要遵循以下原則:
1、采取命中特征原則,當(dāng)且僅當(dāng)完全符合區(qū)分瀏覽器的特征時(shí)我們才會(huì)采用此特征。例如單純通過UA中MSIE來檢測是否為IE瀏覽器是不可靠的。而通過判斷是否存在MimeType“application/vnd.chromium.remoting-viewer”來斷言原生Chrome在現(xiàn)階段來看是可行性,但也不保證永久有效。
2、對(duì)于主流瀏覽器來說一般不存在UserAgent關(guān)鍵字沖突,但對(duì)于許多加殼瀏覽器者就不一定了。再次提出某數(shù)字瀏覽器,userAgent干脆和IE一模一樣,但渲染模式等等不不知道動(dòng)了什么手腳,與標(biāo)準(zhǔn)IE行為差異很大。通過userAgent來判斷瀏覽器時(shí),優(yōu)先命中瀏覽器特征字。匹配則基本確定為該瀏覽器,但未匹配也并不代表不是此瀏覽器。請(qǐng)悉知。
3、優(yōu)先使用瀏覽器特性來區(qū)分瀏覽器,因?yàn)檫@個(gè)準(zhǔn)確性較高。其次再采用userAgent輔助判斷,從而達(dá)到最高的匹配度。
4、優(yōu)先檢測第三方加殼瀏覽器,目前并未有十分好的方案,只能枚舉大部分世面上存在并可以判斷的瀏覽器,其他未匹配任何規(guī)則的瀏覽器,為了兼容,請(qǐng)將規(guī)則落到四大瀏覽器之一。
5、判斷瀏覽器版本,僅僅是為了針對(duì)特定瀏覽器進(jìn)行優(yōu)化,需要有特定的業(yè)務(wù)場景需要才要這么做?;蛘弋?dāng)某個(gè)瀏覽器出現(xiàn)兼容問題時(shí),緊急添加針對(duì)瀏覽器的補(bǔ)丁代碼時(shí)才判斷。更加科學(xué)穩(wěn)妥的辦法是使用標(biāo)準(zhǔn)的JS函數(shù)和API,頁面元素和樣式設(shè)計(jì)遵循W3C標(biāo)準(zhǔn)??赡艽嬖跔幾h的兼容性問題盡可能采用第三方框架如jQuery。這才是解決兼容性問題的根本。
下面附上最近整理規(guī)納判斷瀏覽器類型的代碼
- js代碼判斷瀏覽器種類IE、FF、Opera、Safari、chrome及版本
- 使用Chrome調(diào)試JavaScript的斷點(diǎn)設(shè)置和調(diào)試技巧
- JavaScript無提示關(guān)閉窗口(兼容IE/Firefox/Chrome)
- 解決javascript:window.close()在chrome,Firefox下失效的問題
- 如何實(shí)現(xiàn)chrome瀏覽器關(guān)閉頁面時(shí)彈出“確定要離開此面嗎?”
- 完美兼容IE,chrome,ff的設(shè)為首頁、加入收藏及保存到桌面js代碼
- JQuery自適應(yīng)IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
- jQuery一步一步實(shí)現(xiàn)跨瀏覽器的可編輯表格,支持IE、Firefox、Safari、Chrome、Opera
- 兼容IE、FireFox、Chrome等瀏覽器的xml處理函數(shù)js代碼
- jQuery旋轉(zhuǎn)插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
- chrome瀏覽器當(dāng)表單自動(dòng)填充時(shí)如何去除瀏覽器自動(dòng)添加的默認(rèn)樣式
- js chrome瀏覽器判斷代碼
- json格式化/壓縮工具 Chrome插件擴(kuò)展版
- 解決ExtJS在chrome或火狐中正常顯示在ie中不顯示的瀏覽器兼容問題
- JavaScript獲取鼠標(biāo)坐標(biāo)的函數(shù)(兼容IE、FireFox、Chrome)
- 禁止選中文字兼容IE、Chrome、FF等
- Chrome擴(kuò)展頁面動(dòng)態(tài)綁定JS事件提示錯(cuò)誤
- Chrome開發(fā)者工具9個(gè)調(diào)試技巧詳解
相關(guān)文章
javascript使用正則表達(dá)式實(shí)現(xiàn)注冊(cè)登入校驗(yàn)
這篇文章主要為大家詳細(xì)介紹了javascript使用正則表達(dá)式實(shí)現(xiàn)注冊(cè)登入校驗(yàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09JS數(shù)組操作大全對(duì)象數(shù)組根據(jù)某個(gè)相同的字段分組
這篇文章主要介紹了JS數(shù)組操作大全對(duì)象數(shù)組根據(jù)某個(gè)相同的字段分組,需要注意的是,在開發(fā)過程這種數(shù)組的處理函數(shù),應(yīng)當(dāng)被編寫到項(xiàng)目的公共工具函數(shù)庫中全局調(diào)用,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11原生JS實(shí)現(xiàn)圖片網(wǎng)格式漸顯、漸隱效果
這篇文章主要介紹了原生JS實(shí)現(xiàn)圖片網(wǎng)格式漸顯、漸隱效果,需要的朋友可以參考下2017-06-06