有沒有可靠的方法來檢測用戶代理字符串的瀏覽器功能?你能檢測到服務器端的HTML 5 History API嗎?
回答
這不是服務器端(所以它可能不回答你的問題,我認爲這將是有益的,雖然):
你有沒有看Modernizr
這是你在包括JavaScript文件你HTML頁面。然後,您可以使用其屬性來檢測瀏覽器是否支持特定的HTML 5標記。
HTML5不是服務器端語言。
無論如何,沒有一種方法來可靠地檢測UA的能力,例如他們可以關閉JavaScript,插件安裝,等等,等等
你可以使用一些SS的方法,如PHP's Browser Detect,但除了從那以後,你就無法做到更多。雖然這根本不全面!
這樣的一切都應該在Javascript中完成客戶端,因爲您可以輕鬆檢測到可用的和不可用的。有許多圖書館可以做到這一點,但如果你知道自己想要什麼,那麼做自己很簡單,因此不應該要求使用某個圖書館。此外,你不應該想要基於用戶代理字符串來做到這一點,正如我之前提到的那樣,有可用的插件,可以修改行爲等。你應該從字面上檢查你想使用的功能,而不是限制自己到某個版本的瀏覽器。
謝謝,我很清楚HTML5與服務器無關,但是確定客戶端是否需要例如基於瀏覽器功能的重定向,當使用History API實現網站導航時,這一點尤其重要,所以當我直接訪問'/ foo/bar'時,服務器將我重定向到'/#/ foo/bar'如果我的瀏覽器是愚蠢的(反之亦然,當然) 它可以節省大量的帶寬,而不必下載d任何JS都可以通過簡單的重定向頭來完成。 – Zeppelin 2011-05-03 10:37:42
哦,我看到了,不確定你是否可以做到這一點。你見過一個例子嗎? – 2011-05-03 10:48:48
還沒有。但我想這是因爲很少有網站使用API。 GitHub就是一個例子,但他們只是回到傳統的導航而不是基於哈希標記的(http://sammyjs.org)。 – Zeppelin 2011-05-03 11:15:32
不可靠 - 您一直想從用戶代理字符串中找出瀏覽器版本,並維護哪些瀏覽器版本支持該API的列表。
你可以,但是,使用JavaScript檢測到它在客戶端:
,然後做通過JavaScript重定向(通過設置window.location
IE),讓服務器知道API是否可用。這將是通常的方式來重定向到一個URL從#
開始(根據您對rudi_visser’s answer的評論。
- 1. ASP.NET檢測SVG功能服務器端
- 2. 我的HTTP服務器能夠檢測到客戶端的連接速度嗎?
- 3. IE10是否支持HTML 5 History API?
- 4. 檢測Silverlight服務器端
- 5. 你能推薦我一個服務器端JavaScript解析器嗎?
- 6. 檢測硬件更改服務器端
- 7. 檢查服務器的HTML 5支持嗎?
- 8. 你能檢測到INSERT-EXEC場景嗎?
- 9. 服務器端HTML到PDF
- 10. 檢測服務器端啓用的Javascript
- 11. 檢測服務器端的TimeoutException WCF
- 12. htaccess的服務器端WEBP檢測
- 13. 你能從服務器端訪問Realm移動平臺嗎?
- 14. 檢測瀏覽器/版本與JavaScript與檢測服務器端?
- 15. 服務器端分頁可能嗎?
- 16. 服務器端分頁5
- 17. 你能用Javascript來檢測一個文件下載窗口創建的服務器端嗎?
- 18. HTML 5如何拖放到服務器
- 19. 對象檢測 - 服務器端 - 技術
- 20. 服務器端設備檢測
- 21. Perl服務器端跨域檢測
- 22. 客戶端 - 服務器功能測試
- 23. java的socket服務器,客戶端檢測到服務器已經死亡
- 24. boost :: asio服務器 - 檢測服務器端口失敗
- 25. Corba - 服務器端方法可能嗎?
- 26. 客戶端JavaScript服務器 - 可能嗎?
- 27. 堆棧粉碎在檢測客戶端服務器中檢測到C
- 28. 在服務器端測試Flash功能
- 29. 服務器端性能測試
- 30. REST API測量服務器端響應時間(性能)。
謝謝。我知道Modernizr(我廣泛使用它),但要確定要爲客戶提供什麼服務第一個地方是一件好事,這就是爲什麼我特意詢問了服務器端解決方案的原因, – Zeppelin 2011-05-03 10:42:57