2011-05-03 51 views

回答

0

這不是服務器端(所以它可能不回答你的問題,我認爲這將是有益的,雖然):

你有沒有看Modernizr

這是你在包括JavaScript文件你HTML頁面。然後,您可以使用其屬性來檢測瀏覽器是否支持特定的HTML 5標記。

+0

謝謝。我知道Modernizr(我廣泛使用它),但要確定要爲客戶提供什麼服務第一個地方是一件好事,這就是爲什麼我特意詢問了服務器端解決方案的原因, – Zeppelin 2011-05-03 10:42:57

1

HTML5不是服務器端語言。

無論如何,沒有一種方法來可靠地檢測UA的能力,例如他們可以關閉JavaScript,插件安裝,等等,等等

你可以使用一些SS的方法,如PHP's Browser Detect,但除了從那以後,你就無法做到更多。雖然這根本不全面!

這樣的一切都應該在Javascript中完成客戶端,因爲您可以輕鬆檢測到可用的和不可用的。有許多圖書館可以做到這一點,但如果你知道自己想要什麼,那麼做自己很簡單,因此不應該要求使用某個圖書館。此外,你不應該想要基於用戶代理字符串來做到這一點,正如我之前提到的那樣,有可用的插件,可以修改行爲等。你應該從字面上檢查你想使用的功能,而不是限制自己到某個版本的瀏覽器。

+0

謝謝,我很清楚HTML5與服務器無關,但是確定客戶端是否需要例如基於瀏覽器功能的重定向,當使用History API實現網站導航時,這一點尤其重要,所以當我直接訪問'/ foo/bar'時,服務器將我重定向到'/#/ foo/bar'如果我的瀏覽器是愚蠢的(反之亦然,當然) 它可以節省大量的帶寬,而不必下載d任何JS都可以通過簡單的重定向頭來完成。 – Zeppelin 2011-05-03 10:37:42

+0

哦,我看到了,不確定你是否可以做到這一點。你見過一個例子嗎? – 2011-05-03 10:48:48

+0

還沒有。但我想這是因爲很少有網站使用API​​。 GitHub就是一個例子,但他們只是回到傳統的導航而不是基於哈希標記的(http://sammyjs.org)。 – Zeppelin 2011-05-03 11:15:32

1

不可靠 - 您一直想從用戶代理字符串中找出瀏覽器版本,並維護哪些瀏覽器版本支持該API的列表。

你可以,但是,使用JavaScript檢測到它在客戶端:

,然後做通過JavaScript重定向(通過設置window.location IE),讓服務器知道API是否可用。這將是通常的方式來重定向到一個URL從#開始(根據您對rudi_visser’s answer的評論。