2012-04-14 207 views
1

許多人使用以下方式檢測iPad或iPhone。navigator.userAgent檢測移動設備?

<script> 
var agent=navigator.userAgent.toLowerCase(); 

var useHTML5 = (agent.indexOf('iphone')!=-1 || agent.indexOf('ipad')!=-1); 

if (useHTML5){ 
document.write(""); 
} else{ 
document.write(""); 
} 
</script> 

蘋果官方的方式來檢測只針對iPad的iPhone是

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    // iPad-specific code 
} else { 
    // iPhone-specific code 
} 

但是,如果我也想(反正至少Android設備)檢查其他移動什麼?

我是否應該使用Modernizr? 或者腳本 http://detectmobilebrowsers.com/

只是想補充一點,在我的特殊情況下使用FancyBox with VideoJS。

+2

也許你應該討論一下你在這裏真的關心什麼?您是否在尋找某些手機具備的特定功能?您是否正在爲較小的屏幕進行不同的網站設計?您是否想要檢測某些HTML5功能?最後,您可以更好地檢測您關心的確切特徵(屏幕大小,功能可用性,性能特徵等),而不是特定的瀏覽器類型。 – jfriend00 2012-04-14 21:55:01

+0

而且,某些瀏覽器可以更改他們的userAgent,使其無用 – petschekr 2012-04-14 21:55:36

回答

1

MobileESP項目在JavaScript中也有一系列用戶代理檢測方法,但MobileESP API: JavaScript非常有限,因爲有些設備沒有JavaScript支持,而服務器端檢測是正確的方法。 DeviceAtlas Products將提供有關設備功能的更多信息,如果需要的話還有其價格標籤...