在理想狀態下,我們會認為瀏覽器應該支援一組最常用的公共功能,但是現實時瀏覽器之間有存在差異以及特的「怪癖」(quirk)。因此客戶端檢測除了是一種補救措施之外,更是一種行之有效的開發策略。
主要有以下三種客戶端檢測方法
1.能力檢測
在編寫**之前先檢測特定的瀏覽器的能力。例如,指令碼在呼叫某個函式之前,可能線檢測該函式是否存在。這種檢測方法將開發人員從考慮具體的瀏覽器型別和版本中解放出來,讓它們把注意力集中到相應的能力是否存在上。能力檢測無法精確地檢測特定的瀏覽器和版本
2.怪癖檢測
怪癖檢測是想要知道瀏覽器存在什麼缺陷,也就是bug!!!例如早期的webkit中就存在乙個怪癖,即它會在for-in迴圈中返回被隱藏的屬性。怪癖檢測通常涉及到執行執行一小段**,然後確定瀏覽器是否存在某個怪癖。由於怪癖檢測與能力檢測相比效率更低,因此應該只在某個怪癖會干擾指令碼執行的情況下使用。怪癖檢測無法精確地檢測特定的瀏覽器和版本
3.使用者**檢測
通過檢測使用者**字串來識別瀏覽器。使用者**字串中包含大量與瀏覽器有關的資訊,包括瀏覽器、平台、作業系統及瀏覽器版本。
使用者**字串有過一段相當長的發展歷史,在此期間,瀏覽器提供商試圖通過在使用者**字串中新增一些欺騙性資訊,欺騙**相信自己的瀏覽器是另外一種瀏覽器。在決定使用哪種客戶端檢測方法時,一般應優先考慮使用能力檢測。怪癖檢測是確定應該如何處理**的第二選擇。而使用者**檢測則是客戶端檢測的最後一種方案,因為這種方法會對使用者**字串具有很強的依賴性
客戶端檢測
一 客戶端檢測的原因 瀏覽器之間存在不同差別,通常需要根據不同的瀏覽器的能力分別編寫不同的 客戶端檢測除了是一種補救措施之外,更是一種行之有效的開發策略。客戶端檢測分為能力檢測 怪癖檢測 使用者 檢測。二 能力檢測 在編寫 之前先檢測特定的瀏覽器的能力,例如,指令碼在呼叫某個函式之前,可能要先檢測該...
客戶端檢測技術
按優先順序降序 能力檢測 怪癖檢測 使用者 檢測 能力檢測 一種客戶端檢測形式 又稱特性檢測 目的不是識別特定的瀏覽器,而是識別瀏覽器的能力 兩個概念 1.先檢測最常用的特性可以保證 最優化 2.必須測試實際要用到的特性 在可能的情況下,盡量使用typeof進行能力檢測 使用者 檢測 通過檢測使用者...
JavaScript 客戶端檢測
能力檢測 最常用也最為人們廣泛接受的客戶端檢測形式是能力檢測 又稱特性檢測 能力檢測的目標不是識別特定的瀏覽器,而是識別瀏覽器的能力。採用這種方式不必顧及特定的瀏覽器如何如何,只要確定瀏覽器支援特定的能力,就可以給出解決方案。要理解能力檢測,首先必須要理解兩個重要的概念。第乙個概念就是先檢測達成目的...