文件:hasStorageAccess() 方法
hasStorageAccess() 方法屬於 Document 介面,它返回一個 Promise,該 Promise 解析為一個布林值,指示文件是否具有訪問 第三方、未分割槽 Cookie 的許可權。
此方法是 Storage Access API 的一部分。
注意:此方法是 Document.hasUnpartitionedCookieAccess() 的另一個名稱。目前沒有計劃棄用此方法而只使用 Document.hasUnpartitionedCookieAccess()。
語法
js
hasStorageAccess()
引數
無。
返回值
一個 Promise,它解析為一個布林值,指示文件是否具有訪問第三方 Cookie 的許可權——如果具有,則為 true,否則為 false。
此方法返回的結果在某些情況下可能不準確。
- 使用者可能設定了阻止第三方 Cookie 的瀏覽器設定;在這種情況下,即使第三方 Cookie 仍然無法訪問,也可能返回
true。要處理這種情況,您應該優雅地處理任何導致 Cookie 值無法檢索的錯誤;例如,告知使用者對他們個性化設定的訪問已被阻止,並邀請他們再次登入以使用這些設定。 - 瀏覽器可能預設不阻止第三方 Cookie 訪問;在這種情況下,即使第三方 Cookie 可訪問,也可能返回
false,並且不需要請求儲存訪問(即透過Document.requestStorageAccess())。要解決此問題,您可以查詢Document.cookie以確定您的 Cookie 是否可訪問,如果不可訪問,則呼叫Document.requestStorageAccess()。
注意:如果 Promise 已解析,並且在最初呼叫該函式時正在處理使用者手勢事件,則解析處理程式將像正在處理使用者手勢一樣執行,因此它能夠呼叫需要使用者啟用的 API。
異常
InvalidStateErrorDOMException-
如果當前的
Document尚未啟用,則丟擲此錯誤。
示例
js
document.hasStorageAccess().then((hasAccess) => {
if (hasAccess) {
// storage access has been granted already.
console.log("cookie access granted");
} else {
// storage access hasn't been granted already;
// you may want to call requestStorageAccess().
console.log("cookie access denied");
}
});
注意:有關更完整的示例,請參閱使用 Storage Access API。
規範
| 規範 |
|---|
| Storage Access API # dom-document-hasstorageaccess |
瀏覽器相容性
載入中…