客戶端檢測

2021-08-06 01:31:26 字數 1304 閱讀 4318

一、客戶端檢測的原因

◦瀏覽器之間存在不同差別,通常需要根據不同的瀏覽器的能力分別編寫不同的**

◦客戶端檢測除了是一種補救措施之外,更是一種行之有效的開發策略。

◦客戶端檢測分為能力檢測、怪癖檢測、使用者**檢測。

二、能力檢測

◦在編寫**之前先檢測特定的瀏覽器的能力,例如,指令碼在呼叫某個函式之前,可能要先檢測該函式是否存在。

◦檢測某個或某幾個特性並不能夠確定瀏覽器,能力檢測不是瀏覽器檢測,無法精確地檢測特定的瀏覽器和版本。

◦在實際開發中,應該將能力檢測作為確定下一步解決方案的依據,而不是用它來判斷使用者使用的是什麼瀏覽器。

三、怪癖檢測

◦實際上是瀏覽器實現中存在的bug,早期的webkit就存在乙個怪癖,即為會在for-in迴圈中返回被隱藏的屬性,怪癖檢測通常涉及到執行一小段**,然後確定瀏覽器是否存在某個怪癖,由於怪癖檢測與能力檢測相比效率更低,因此應該只在某乙個怪癖會干擾指令碼執行的情況下使用。

◦怪癖檢測無法精確特定的瀏覽器和版本。

四、使用者**檢測

◦通過檢測使用者**字串來識別瀏覽器,使用者**字串中包含大量與瀏覽器有關的資訊,包括瀏覽器、平台、作業系統及瀏覽器版本。

◦使用者**字串有過一段相當長的發展歷史,在此期間,瀏覽器提供

商通過在使用者**字串中新增一些欺騙性的資訊,欺騙**以為自己的瀏覽器是另為乙個瀏覽器,使用者**檢測需要特殊的技巧,特別是opera會隱瞞其使用者**字串的情況,即便如此,通過使用者**字串依然能夠檢測出瀏覽器所用的呈現引擎以及所在的平台,包括移動裝置和遊戲系統

!1.png!

五、小結

◦只要能找到更通用的方法,就應該優先採用更通用的方法。萬不得已,再使用客戶端檢測。

◦在決定使用哪種客戶端檢測方法時,應該優先考慮使用能力檢測,怪癖檢測是確定應該如何處理**的第二選擇,而使用者**檢測則是客戶端檢測的最後一種方案(這種方法對使用者**字串具有很強的依賴性)

六、使用方法

◦不能直接準確地使用能力檢測或怪癖檢測。例如,某些瀏覽器實現了為將來功能預留的存根函式。在這種情況下,經測試相應的函式是否存在還得不到足夠的資訊。

◦同一款瀏覽器在不同的平台下具備不同的能力。這時候,可能就有必要確定瀏覽器位於哪個平台下。

客戶端檢測

在理想狀態下,我們會認為瀏覽器應該支援一組最常用的公共功能,但是現實時瀏覽器之間有存在差異以及特的 怪癖 quirk 因此客戶端檢測除了是一種補救措施之外,更是一種行之有效的開發策略。主要有以下三種客戶端檢測方法 1.能力檢測 在編寫 之前先檢測特定的瀏覽器的能力。例如,指令碼在呼叫某個函式之前,可...

客戶端檢測技術

按優先順序降序 能力檢測 怪癖檢測 使用者 檢測 能力檢測 一種客戶端檢測形式 又稱特性檢測 目的不是識別特定的瀏覽器,而是識別瀏覽器的能力 兩個概念 1.先檢測最常用的特性可以保證 最優化 2.必須測試實際要用到的特性 在可能的情況下,盡量使用typeof進行能力檢測 使用者 檢測 通過檢測使用者...

JavaScript 客戶端檢測

能力檢測 最常用也最為人們廣泛接受的客戶端檢測形式是能力檢測 又稱特性檢測 能力檢測的目標不是識別特定的瀏覽器,而是識別瀏覽器的能力。採用這種方式不必顧及特定的瀏覽器如何如何,只要確定瀏覽器支援特定的能力,就可以給出解決方案。要理解能力檢測,首先必須要理解兩個重要的概念。第乙個概念就是先檢測達成目的...