我每次都會被要求在客戶Web服務器上安裝類似this的東西,或者我們被問到是否支持BrowserHawk(我們不這樣做)。Modernizr是瀏覽器功能工具(如BrowserHawk)的替代品嗎?
我想知道Modernizr是否可以指示我的客戶並告訴他們使用?
我每次都會被要求在客戶Web服務器上安裝類似this的東西,或者我們被問到是否支持BrowserHawk(我們不這樣做)。Modernizr是瀏覽器功能工具(如BrowserHawk)的替代品嗎?
我想知道Modernizr是否可以指示我的客戶並告訴他們使用?
我還沒有使用過Browserhawk(事實上,我從來沒有聽說過它,直到現在),所以請不要認爲我的觀點是正確的。
但是,我確實知道browsecap.ini,並花了一些時間閱讀Browserhawk網站,我相當肯定它也是一個服務器端瀏覽器檢測工具。
如果是這樣,那麼答案是'是'。目前的最佳做法是避免使用服務器端瀏覽器檢測,而是使用客戶端功能檢測。而這正是Modernizr所做的。
功能檢測功能允許您根據用戶瀏覽器的功能對網站進行更精細的調整,而不是簡單地阻止擁有(或不具有)特定瀏覽器的用戶。如果需要,它還允許您爲特定功能實現特定的回退解決方案。
由於瀏覽器市場的快速變化,從服務器端檢測用戶的瀏覽器是一個問題;您需要不斷更新瀏覽器檢測腳本以應對新版本。
此外,瀏覽器檢測腳本可能無法正確檢測稍不尋常的瀏覽器或瀏覽器shell的用戶,因此即使瀏覽器應該能夠顯示網站,它們也可能會在使用它的網站上遇到問題。此外,某些用戶可能不會提供正確檢測其瀏覽器所需的用戶代理字符串;它被一些代理,防火牆等阻止,並且一些瀏覽器也允許它被修改,所以如果用戶想要,它可以很容易被欺騙。
但是爲了促進瀏覽器檢測功能檢測,我需要指出一個例外,那就是IE。
老版本的IE有很多bug。這與簡單地缺少功能不同,因爲您不能主動檢查錯誤。如果您遇到了IE錯誤的具體問題,那麼瀏覽器檢測以避免它們是合法的。 (如果您只關心瀏覽器支持的功能,而不是實際的錯誤,則功能檢測仍然有效)
但即使在這種情況下,browsercap.ini或Browserhawk等工具也是不必要的。 IE有助於支持Conditional Comments,它允許您爲IE添加特定的代碼,而無需自己去檢測它。