2012-06-13 67 views
4

我想在我的一個JavaScript函數中進行檢查,以確定我是否在智能手機上,然後根據結果決定是否運行該函數。JavaScript中的檢查返回我是否在智能手機上?

在JavaScript中檢測/檢查智能手機(或普通手持設備)的最佳方法是什麼?

例如

if (user is on a smartphone) { 
//run this code if on a phone 
} else { 
//run this code if not on a phone 
} 

如果不檢查一個電話一個明確的方法,那麼什麼是支票的決定運行的代碼之前執行的最佳選擇我應注意什麼?

編輯/ UPDATE:在這個類似的帖子的回答和評論應該給我的東西去 - What is the best way to detect a mobile device in jQuery?

+0

這可能幫助:http://stackoverflow.com/問題/ 10823144/is-there-a-quintessential-mobile-user-agent-regexp-pattern – techfoobar

+0

@ilanco謝謝我找不到那篇文章。我認爲那裏的答案/評論應該給我一些合作。 –

+0

我認爲這裏已經提供了一個答案:https://stackoverflow.com/questions/3514784/best-way-to-detect-handheld-device-in-jquery版主:這將是一個好主人可以關閉他自己的問題。我知道有一個投票系統來做到這一點......可能服務最好的人誰知道 – brumScouse

回答

0

你可以嘗試Twitter的引導,http://twitter.github.com/bootstrap/scaffolding.html。特別是響應式設計部分。

+0

Bootstrap純粹是CSS和沒有Javascript檢測。 (一如既往)雖然有一個醜陋的黑客:http://stackoverflow.com/questions/14441456/how-to-detect-which-device-view-youre-on-using-twitter-bootstrap-api – cederlof

1

葉奧爾德瀏覽器嗅探似乎是解決

if(navigator.userAgent.match(/Android/i) 
|| navigator.userAgent.match(/webOS/i) 
|| navigator.userAgent.match(/iPhone/i) 
|| navigator.userAgent.match(/iPad/i) 
|| navigator.userAgent.match(/iPod/i) 
|| navigator.userAgent.match(/BlackBerry/i) 
){ 
// some code.. 
} 
+0

有一個我在上面發佈的鏈接上覆制了此答案。 –

+0

是的,我無恥地從那裏偷走它。認爲值得強調一點,作爲對問題的實際回答。 – primavera133

0

可以使用Categorizr JS庫來測試用戶的設備是手機,平板電腦,智能電視或臺式機。 Categorizr使用用戶代理嗅探,所以您應該留意腳本的更新,因爲用戶代理會隨着時間的推移而「發展」。

這裏是你將如何使用Categorizr檢查,如果用戶是在智能手機上,而不是智能電視,臺式機或平板電腦:

if (categorizr.isMobile) { 
    //run this code if on a phone 
} else { 
    //run this code if not on a phone 
}