Document: hasStorageAccess() メソッド
Baseline 2023
Newly available
Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
hasStorageAccess()
は Document
インターフェイスのメソッドで、この文書がサードパーティの分離されたクッキーへのアクセス権を持っているかどうかを示す論理値で解決する Promise
を返します。
詳しくは ストレージアクセス API を参照してください。
メモ:
このメソッドは Document.hasUnpartitionedCookieAccess()
の別名です。Document.hasUnpartitionedCookieAccess()
のためにこのメソッドを削除する予定はありません。
構文
hasStorageAccess()
引数
なし。
返値
文書がサードパーティ Cookie にアクセスできるかどうかを示す論理値で解決する Promise
です。サードパーティ Cookie にアクセスできる場合は true
、できない場合は false
です。
このメソッドが返す結果は、状況によっては不正確なことがあります。
- ユーザーがサードパーティクッキーをブロックするブラウザー設定をアクティブにしている場合があります。この場合、サードパーティのクッキーにはまだアクセスできないにもかかわらず、
true
が返されるかもしれません。このような状況を処理するには、クッキーの値が回復不可能になるようなエラーを適切に処理しなければなりません。例えば、個人設定へのアクセスがブロックされていることをユーザーに知らせ、それを使用するには再度サインインするよう促してください。 - ブラウザーは既定で、サードパーティクッキーへのアクセスをブロックしない場合があります。この場合、サードパーティクッキーがアクセス可能であっても
false
が返されるかもしれませんし、ストレージへのアクセスは(つまりDocument.requestStorageAccess()
を通して)リクエストされる必要はないでしょう。この課題を回避するには、Document.cookie
に問い合わせてクッキーがアクセス可能かどうかを探し、アクセス可能でない場合はDocument.requestStorageAccess()
を呼び出します。
メモ: プロミスが解決され、関数が元々呼び出されたときにユーザージェスチャーイベントが処理されていた場合、解決ハンドラーはユーザーによるジェスチャーが処理されているかのように実行サレルるので、ユーザーによるアクティブ化が要求される API を呼び出すことができます。
例外
InvalidStateError
DOMException
-
現在の
Document
がまだアクティブでない場合に発生します。
例
document.hasStorageAccess().then((hasAccess) => {
if (hasAccess) {
// ストレージへのアクセスはすでに許可されています。
console.log("クッキーへのアクセスが許可されました");
} else {
// ストレージへのアクセスはまだ許可されていません。
// requestStorageAccess() を呼び出す必要があります。
console.log("クッキーへのアクセスが拒否されました");
}
});
メモ: より完全な例は、ストレージアクセス API の使用を参照してください。
仕様書
Specification |
---|
The Storage Access API # dom-document-hasstorageaccess |
ブラウザーの互換性
BCD tables only load in the browser