通過(guò)JS判斷網(wǎng)頁(yè)是否為手機(jī)打開(kāi)
參考一:
//返回true表示為pc端打開(kāi),返回false表示為手機(jī)端打開(kāi) function check() { var userAgentInfo=navigator.userAgent; var Agents =new Array("Android","iPhone","SymbianOS","Windows Phone","iPad","iPod"); var flag=true; for(var v=0;v<Agents.length;v++) { if(userAgentInfo.indexOf(Agents[v])>0) { flag=false; break; } } return flag; }
參考二:
簡(jiǎn)單的利用 JS 來(lái)判斷頁(yè)面是在手機(jī)端還是在 PC 端打開(kāi)的方法(轉(zhuǎn))
在移動(dòng)設(shè)備應(yīng)用越來(lái)越廣泛的今天,許多網(wǎng)站都開(kāi)始做移動(dòng)端的界面展示,兩者屏幕尺寸差異很大,所以展示的內(nèi)容也有所差別。于是就遇到一個(gè)問(wèn)題,如何判斷你的頁(yè)面是在移動(dòng)端還是在PC端打開(kāi)的,很簡(jiǎn)單的問(wèn)題,那我們就簡(jiǎn)單點(diǎn)來(lái)說(shuō),以我們公司的官網(wǎng)來(lái)說(shuō),PC端和移動(dòng)端的官網(wǎng)界面分別如下:
PC
手機(jī)
Navigator對(duì)象
首先來(lái)了解一下Navigator 對(duì)象,Navigator 對(duì)象包含有關(guān)瀏覽器的信息,下面的userAgent 屬性是一個(gè)只讀的字符串,聲明了瀏覽器用于 HTTP 請(qǐng)求的用戶(hù)代理頭的值。所以我們可以通過(guò)判斷navigator.useragent里面是否有某些值來(lái)判斷,比如我的電腦是mac,所以打印出來(lái)的值為
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
具體含義不解釋?zhuān)信d趣同學(xué)自行百度,可以看到里面含有 Mac 字樣,其他的也是類(lèi)似的。
那如何判斷頁(yè)面是在移動(dòng)端還是PC端打開(kāi)的呢?
網(wǎng)上有很多方法,寫(xiě)的或難或簡(jiǎn)單,實(shí)際上一行代碼就夠了
window.location.href = /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) ? "https://www.baidu.com/" : http://news.baidu.com/;
以上代碼利用了 正則表達(dá)式 和 三目運(yùn)算符,含義就是如果是移動(dòng)端打開(kāi)的話(huà)那就跳轉(zhuǎn)到 https://www.baidu.com/,如果不是就跳轉(zhuǎn)到 http://new.baidu.com/,這個(gè)看不懂的話(huà),那我下面這樣寫(xiě)就很容易理解了吧
if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) { window.location.; } else { window.location.; }
什么?if 里面的判斷還是看不懂?實(shí)際上就是利用正則去判斷 navigator.useragent 是否含有 Android/webOs/iphone 等字符串,并且利用修飾符 " i " 做了不區(qū)分大小寫(xiě),然后用正則的方法 test 去判斷是否滿(mǎn)足,如果這種方式不理解的話(huà)完全可以利用字符串的 indexOf 方法去判斷。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- js如何判斷是否在iframe中及防止網(wǎng)頁(yè)被別站用iframe嵌套
- JS實(shí)現(xiàn)點(diǎn)擊網(wǎng)頁(yè)判斷是否安裝app并打開(kāi)否則跳轉(zhuǎn)app store
- javascript判斷網(wǎng)頁(yè)是關(guān)閉還是刷新
- JS判斷網(wǎng)頁(yè)廣告是否被瀏覽器攔截過(guò)濾的代碼
- js判斷當(dāng)頁(yè)面無(wú)法回退時(shí)關(guān)閉網(wǎng)頁(yè)否則就history.go(-1)
- javascript判斷是手機(jī)還是電腦訪問(wèn)網(wǎng)頁(yè)的簡(jiǎn)單實(shí)例分享
- javascript獲取和判斷瀏覽器窗口、屏幕、網(wǎng)頁(yè)的高度、寬度等
- 借助javascript代碼判斷網(wǎng)頁(yè)是靜態(tài)還是偽靜態(tài)
- js判斷是否是移動(dòng)設(shè)備登陸網(wǎng)頁(yè)的簡(jiǎn)單方法
相關(guān)文章
JavaScript求一個(gè)數(shù)組中重復(fù)出現(xiàn)次數(shù)最多的元素及其下標(biāo)位置示例
這篇文章主要介紹了JavaScript求一個(gè)數(shù)組中重復(fù)出現(xiàn)次數(shù)最多的元素及其下標(biāo)位置,涉及javascript數(shù)組元素遍歷、判斷、正則過(guò)濾、追加等相關(guān)操作技巧,需要的朋友可以參考下2018-07-07一篇文章帶你學(xué)會(huì)JavaScript計(jì)時(shí)事件
JS可以實(shí)現(xiàn)很多java代碼不易完成的功能,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)一篇文章帶你學(xué)會(huì)JavaScript計(jì)時(shí)事件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11window.location.reload()方法刷新頁(yè)面彈出要再次顯示該網(wǎng)頁(yè)對(duì)話(huà)框
用window.location.reload()方法刷新頁(yè)面時(shí),IE彈出“要再次顯示該網(wǎng)頁(yè)....”對(duì)話(huà)框,解決辦法,接下來(lái)介紹下詳細(xì)的解決方法,感興趣的朋友可以參考下哈2013-04-04JavaScript實(shí)現(xiàn)復(fù)選框全選或全取消操作
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)復(fù)選框全選或全取消操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09JavaScript一元正號(hào)運(yùn)算符示例代碼
這篇文章主要給大家介紹了關(guān)于JavaScript一元正號(hào)運(yùn)算符的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06