天天看點

用戶端檢測

前端開發中,在呈現引擎、浏覽器、平台、作業系統、引動裝置、遊戲系統存在差異的情況下,我們的代碼會出現很多不相容問題。

而,用戶端檢測,就是分辨上述6個種類的方法,進而可以使我們針對不同的情況運作不同的代碼。但是用戶端檢測是非常麻煩的,這絕不是第一個考慮的方式。

具體的用戶端檢測,可以在JavaScript進階程式設計設計的  用戶端檢測 這一章得到認真的解析,包括方法。也可以在網上搜尋。不過多介紹。

我們平時開發中,為了寫出相容的代碼,用戶端檢測用的絕對不是最多的,它經常是排到最後一位來使用,也就是徹底沒辦法的時候才用。

下面來說一下,其它的優先級比較高的檢測方式。

1、能力檢測:

我們可以判斷一個方法是否能用,或者一個方法是否存在,然後再使用這些方法,這樣就不會出現錯誤。也就是先檢測有沒有這項能力。

2、怪癖檢測:它的目标是 識别浏覽器的特殊行為,如IE8更早版本,存在一個bug,某個執行個體屬性與[[Enumerable]]标記為false的某個原型屬性同名,那麼該執行個體屬性将不會出現在for-in循環中。可以yoga如下代碼來檢測;

進而可以針對這種情況寫一些相容代碼;

而在前兩種方法都解決不了相容性的情況下,我們才采用  用戶端檢測  ,

确定是什麼引擎(opera、webkit、KHTML、Gecko、IE);

确定是什麼浏覽器:chrome、opera、konq、safari、firefox、IE;

确定是什麼平台:win(windows)、mac、xll(Unix);

确定是什麼操作windows系統:"2000"、"XP"、"Vista"、"7"、"NT"、"ME"、RegExp["$1"];

确定是什麼移動裝置:iphone、ipod、ios、android、nokiaN、winMobile;

确定是什麼遊戲系統:wii、ps

當我們檢測出這些資訊後,就可以根據不同情況寫相容代碼了,不過這種方法,不到萬不得已,不推薦使用。

繼續閱讀