NavigatorUAData: getHighEntropyValues() 方法
注意:此功能在 Web Workers 中可用。
NavigatorUAData 介面的 getHighEntropyValues() 方法是一個 Promise,它會解析為一個包含使用者代理返回的高熵值的字典物件。
注意: 高熵和低熵這兩個術語指的是這些值能揭示關於瀏覽器資訊的多少。作為屬性返回的值被認為是低熵值,不太可能識別使用者。而 getHighEntropyValues() 返回的值可能揭示更多資訊。因此,這些值是透過 Promise 檢索的,為瀏覽器請求使用者許可權或進行其他檢查留出時間。
語法
getHighEntropyValues(hints)
引數
hints-
一個包含要返回的提示(hints)的陣列,一個或多個以下值:
"architecture""bitness""formFactors""fullVersionList""model""platformVersion""uaFullVersion"已棄用"wow64"
返回值
一個 Promise,解析為一個物件,包含以下值中的部分或全部(取決於請求的提示):
brands-
返回一個物件陣列,包含
brand和version,指定瀏覽器品牌及其版本(與NavigatorUAData.brands提供的資訊相同)。請注意,這些資訊可以透過Sec-CH-UA頭部發送到伺服器(一個低熵客戶端提示)。 mobile-
返回一個布林值,如果使用者代理執行在移動裝置上(與
NavigatorUAData.mobile提供的資訊相同)。請注意,這些資訊可以透過Sec-CH-UA-Mobile頭部發送到伺服器(一個低熵客戶端提示)。 platform-
返回一個字串,描述使用者代理執行的平臺,例如
"Windows"(與NavigatorUAData.platform提供的資訊相同)。請注意,這些資訊可以透過Sec-CH-UA-Platform頭部發送到伺服器(一個低熵客戶端提示)。 architecture-
一個包含平臺架構的字串。例如,
"x86"。請注意,在伺服器透過Accept-CH頭部明確請求後,這些資訊可以透過Sec-CH-UA-Arch頭部發送到伺服器。 bitness-
一個包含架構位數的字串。例如,
"32"或"64"。請注意,如果伺服器透過Accept-CH頭部明確請求,這些資訊可以透過Sec-CH-UA-Bitness頭部發送到伺服器。 formFactors-
一個字串陣列,包含裝置的形態因子(form-factors)。例如,
["Tablet", "XR"]。請注意,如果伺服器透過Accept-CH頭部明確請求,這些資訊可以透過Sec-CH-UA-Form-Factors頭部發送到伺服器。 fullVersionList-
一個物件陣列,每個物件包含
"brand"和"version"屬性,分別表示瀏覽器名稱和完整版本。例如,{"brand": "Google Chrome", "version": "103.0.5060.134"}, {"brand": "Chromium", "version": "103.0.5060.134"}。請注意,其中一個物件可能故意包含無效資訊,以防止網站依賴固定的瀏覽器列表。請注意,如果伺服器透過Accept-CH頭部明確請求,這些資訊可以透過Sec-CH-UA-Full-Version-List頭部發送到伺服器。 model-
一個包含移動裝置型號的字串。例如,
"Pixel 2XL"。如果裝置不是移動裝置或裝置型號未知,model將為空字串""。請注意,如果伺服器透過Accept-CH頭部明確請求,這些資訊可以透過Sec-CH-UA-Model頭部發送到伺服器。 platformVersion-
一個包含平臺版本的字串。平臺名稱本身始終作為低熵提示
platform提供。例如,"10.0"。請注意,如果伺服器透過Accept-CH頭部明確請求,這些資訊可以透過Sec-CH-UA-Platform-Version頭部發送到伺服器。 uaFullVersion已棄用-
一個包含瀏覽器完整版本的字串。例如,
"103.0.5060.134"。已棄用,推薦使用fullVersionList。請注意,如果伺服器透過Accept-CH頭部明確請求,這些資訊可以透過Sec-CH-UA-Full-Version頭部發送到伺服器。 wow64-
一個布林值,指示使用者代理的二進位制檔案是否在 64 位 Windows 上以 32 位模式執行。請注意,如果伺服器透過
Accept-CH頭部明確請求,這些資訊可以透過Sec-CH-UA-WoW64頭部發送到伺服器。
異常
NotAllowedErrorDOMException-
如果使用者代理決定不返回一個或多個請求的
hints,則會丟擲此錯誤。
示例
以下示例使用 getHighEntropyValues() 方法請求了多個提示。當 Promise 解析後,這些資訊會被列印到控制檯。
navigator.userAgentData
.getHighEntropyValues([
"architecture",
"model",
"platformVersion",
"fullVersionList",
])
.then((values) => console.log(values));
規範
| 規範 |
|---|
| 使用者代理客戶端提示 # dom-navigatoruadata-gethighentropyvalues |
瀏覽器相容性
載入中…