許可權策略:地理位置
HTTP Permissions-Policy 頭部 geolocation 指令控制當前文件是否允許使用 Geolocation 介面。
具體來說,在定義的策略阻止使用此功能的情況下,對 getCurrentPosition() 和 watchPosition() 的呼叫將導致這些函式的回撥被呼叫,並帶有 GeolocationPositionError 程式碼 PERMISSION_DENIED。
預設情況下,Geolocation API 可以在頂級文件及其同源子框架中使用。此指令允許或阻止跨源框架訪問地理位置。這包括同源框架。
語法
http
Permissions-Policy: geolocation=<allowlist>;
<allowlist>-
允許使用該功能的來源列表。有關更多詳細資訊,請參閱
Permissions-Policy> 語法。
預設策略
geolocation 的預設允許列表為 self。
示例
一般示例
SecureCorp Inc. 希望在所有瀏覽上下文中停用 Geolocation API,除了它自己的來源和來源為 https://example.com 的那些來源。它可以透過向定義許可權策略傳送以下 HTTP 響應頭來實現這一點。
http
Permissions-Policy: geolocation=(self "https://example.com")
使用 <iframe> 元素
FastCorp Inc. 希望為所有跨源子框架停用 geolocation,除了特定的 <iframe>。它可以透過向定義許可權策略傳送以下 HTTP 響應頭來實現這一點。
http
Permissions-Policy: geolocation=(self)
然後在 <iframe> 元素上包含一個 allow 屬性
html
<iframe src="https://other.com/map" allow="geolocation"></iframe>
有趣的是,allow 屬性可以選擇性地在某些框架中啟用功能,而在其他框架中不啟用,即使這些框架包含來自同一來源的文件。
規範
| 規範 |
|---|
| Geolocation # permissions-policy |
瀏覽器相容性
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。