2010-11-25 76 views
4

我需要使用Ruby製作if語句,該語句用於檢查客戶端的瀏覽器是否支持HTML5。如何檢查瀏覽器是否支持使用Ruby的HTML5和CSS3功能?

+0

我添加了`css`標籤。 – 2010-11-25 17:52:07

+0

你檢查了http://html5test.com/?他們做了非常全面的html功能支持檢查。 – 2010-11-25 18:17:29

+0

modernizr幫助您解決這個問題 – 2011-10-27 20:21:14

回答

9

簡版:你將無法也不應該。

長版本:如果您執行一些用戶代理嗅探,可能有可能確定用戶的瀏覽器是否支持HTML5。但是,這需要花費相當多的努力才能獲得正確的結果。更好的解決方案是使用像Modernizr(http://www.modernizr.com/)這樣的功能在客戶端進行功能檢測。

1

可以根據HTTP_USER_AGENT字符串讀取瀏覽器信息,但是,如上所述以及其他許多地方,欺騙該信息也很容易。在服務器端,我們只關心它,因爲它讓我們可以全面瞭解用於訪問我們網站的客戶端瀏覽器。

嘗試對後端的瀏覽器做出反應並呈現不同內容的網站已經嘗試了一段時間,但由於瀏覽器如何欺騙其他瀏覽器,但沒有相同的錯誤而失敗。

正如@Stephen Orr所說,CSS是一種更好的處理方式。確定它很糟糕,仍然很容易出錯,但它比嗅探瀏覽器的簽名要好。我們過去常常詛咒IE的每一個版本,因爲它打破了以前的修正。幸運的是,隨着廠商逐漸走向標準,情況似乎越來越好。

1

可以在HTML5上做Feature detection,在您需要時從HTML5檢測單個功能。然而,沒有辦法檢測瀏覽器是否支持HTML5作爲一個大塊 - 因爲沒有「官方」方式來判斷瀏覽器是否支持所有HTML5或僅支持HTML5的一部分。

0
< [html5 element] id="somethingtobedazzledby"> 
    Upgrade your browser 
</ [html5 element] > 
相關問題