2012-11-22 38 views

回答

6

不可以。您應該使用類似Modernizr的東西來檢測功能並在必要時進行回退。

HTML5是一個不同功能的集合,所以你應該檢查你想要的瀏覽器功能。用戶代理字段不應該用於確定兼容性,因爲客戶端程序可能會說謊。用戶代理嗅探不是推薦的方法來確定兼容性 - 它很容易出錯,並且有多個瀏覽器可以將User-Agent字段更改爲其他瀏覽器。

Mozilla/5.0或Mozilla/4.0出現在用戶代理中這麼多瀏覽器的原因是爲了表明它們與某些版本的Netscape具有向後兼容性(4.0 = Netscape 4.0 - 5.0與原始套件(又名SeaMonkey))。基本上每個瀏覽器都會聲明這種兼容性,所以它不是一個非常有用的指標。

+0

+1表示Modernizr。 –

+0

我明白,但你可以通過檢查它是否不低於Mozilla/5.0來清除非常舊的瀏覽器。然後爲5.0做更多的細粒度功能測試。 – mojuba

+0

@mojuba:這部分用戶代理字符串絕對沒有意義,它是向Netscape 4後向兼容的致敬。 –

1

我通常不會使用標題來檢查HTML5的兼容性,只需讓瀏覽器執行此操作即可:發送HTML5和HTML內容,並在適當的情況下進行一些黑客操作。例如:

<audio>Username:</audio><input type="text" placeholder="Username"> 

在這種情況下,如果可能的話,使用placeholder,否則顯示的標籤。 <audio>...</audio>中的內容將由非HTML5瀏覽器顯示,而HTML5瀏覽器將忽略它;反之亦然,非HTML5瀏覽器將不會解析placeholder="Username",而HTML5瀏覽器則會。

相關問題