2013-01-17 139 views
0

哪種方法更可靠地檢測手機瀏覽器?檢測手機瀏覽器沒有用戶代理嗅探

  • UA嗅探

  • jQuery的width()

據我瞭解UA嗅探並不十分可靠。

我需要根據查看頁面的移動設備的寬度更改頁面的HTML。我無法單獨使用媒體查詢。

+0

您是否正在改變某些元素的外觀,因爲屏幕很窄?如果是這樣,請使用媒體查詢。如果你改變元素行爲的方式(例如,移動設備沒有鼠標,所以他們不能懸停),那麼你最好檢測功能(例如它是否支持觸摸事件?)並相應地進行調整。移動設備的分辨率越來越高:寬度不再是檢測它們的準確方法。 – cimmanon

+0

我需要根據寬度更改html。我無法單獨使用媒體查詢。 – user1721135

+0

不幸的是沒有一個選項。 – user1721135

回答

2

您可以使用mobile detect JS library來做到這一點。注意以下警告:

// WARNING: 
// These JavaScript-based device detection features may ONLY work 
// for the newest generation of smartphones, such as the iPhone, 
// Android and Palm WebOS devices. 
// These device detection features may NOT work for older smartphones 
// which had poor support for JavaScript, including 
// older BlackBerry, PalmOS, and Windows Mobile devices. 
// Additionally, because JavaScript support is extremely poor among 
// 'feature phones', these features may not work at all on such devices. 
// For better results, consider using a server-based version of this code, 
// such as Java, APS.NET, PHP, or Ruby. 
0

有兩種選擇:

1-用戶代理嗅探。 2移動檢測JS庫

0

你剛剛回答了你自己的問題 - 你要麼採用用戶的瀏覽器或他們的設備寬度。

如果您想在寬度小於WIDTH_CONSTANT時執行某些操作,請使用mediaQueries或使用javascript檢查尺寸。

如今用戶代理嗅探,不建議在客戶端,因爲,而非嗅探用戶代理,你需要尋找您感興趣的功能。

所以你的情況我幾乎確信地說,你應該尋找設備寬度。

P.S.如果你在服務器端進行處理,我認爲useragent嗅探是唯一能夠找出設備用戶正在使用的方法。

+0

我想在某些瀏覽器寬度或設備寬度上運行js代碼。基本上,如果媒體查詢踢我想要js做些事情。 – user1721135