文章出處
文章列表
客戶端檢測是JavaScript開發中頗具爭議的一個話題。由于瀏覽器版本眾多,且之間存在差別,通過需要根據不同瀏覽器的能力分別編寫不同的代碼,目前常用的方法有三種:
(1)能力檢測:在編寫代碼之前先檢測特定瀏覽器的能力。如,在調用某個函數之前,需要先檢測該函數是否存在,這種方法使得開發人員能夠把注意力集中在相應的能力是否存在上,而不用去考慮具體的瀏覽器類型和版本,但同時這也其缺點之一,就是無法精確的檢測特定的瀏覽器類型和版本。
(2)怪癖檢測:實際上是檢測瀏覽器中存在的bug。不同的瀏覽器存在不同的怪癖(bug),因此通過一段檢測bug的代碼可以確定瀏覽器是否存在該bug,但同樣該方法無法精確的檢測特定的瀏覽器類型和版本。
(3)用戶代理檢測:通過檢測用戶代理字符串來識別瀏覽器。用戶代理字符串中包含了大量瀏覽器相關信息,如瀏覽器類型、平臺、操作系統、版本號等,該方法在一定程度上是可以精確的檢測出特定的瀏覽器類型和版本,但是有些瀏覽器提供商會在用戶代理字符串中添加一些欺騙性信息來隱瞞開發者,因此該方法也存在問題。
在決定使用客戶端檢測方法時,一般應優先考慮使用能力檢測,而用戶代理檢測則是客戶端檢測的最后一種方案,因為該方法對用戶代理字符串有很強的依賴性。
效果展示
本文參考《JavaScript高級程序設計第2版》
文章列表
全站熱搜