幕布斯6054654
2019-05-22 14:28:55
檢測(cè)移動(dòng)設(shè)備的最佳方法是什么?有沒(méi)有一種可靠的方法來(lái)檢測(cè)用戶是否在jQuery中使用移動(dòng)設(shè)備?類(lèi)似于CSS @media屬性的東西?如果瀏覽器在手持設(shè)備上,我想運(yùn)行不同的腳本。jQuery $.browser函數(shù)不是我想要的。
4 回答

精慕HU
TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊
根據(jù)Mozilla - 使用用戶代理進(jìn)行瀏覽器檢測(cè):
總之,我們建議在用戶代理中的任何位置查找字符串“Mobi”以檢測(cè)移動(dòng)設(shè)備。
像這樣:
if (/Mobi/.test(navigator.userAgent)) { // mobile!}
這將匹配所有常見(jiàn)的移動(dòng)瀏覽器用戶代理,包括移動(dòng)Mozilla,Safari,IE,Opera,Chrome等。
Android更新
EricL建議Android
也作為用戶代理進(jìn)行測(cè)試,因?yàn)槠桨咫娔X的Chrome用戶代理字符串不包含“Mobi”(但是手機(jī)版本會(huì)這樣做):
if (/Mobi|Android/i.test(navigator.userAgent)) { // mobile!}

慕森卡
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
一個(gè)簡(jiǎn)單有效的單線程:
function isMobile() { return ('ontouchstart' in document.documentElement); }
但是上面的代碼沒(méi)有考慮帶觸摸屏的筆記本電腦的情況。因此,我提供了基于@Julian解決方案的第二個(gè)版本:
function isMobile() { try{ document.createEvent("TouchEvent"); return true; } catch(e){ return false; }}
添加回答
舉報(bào)
0/150
提交
取消