title | short-title | slug | l10n | ||
---|---|---|---|---|---|
Document: hasStorageAccess() メソッド |
hasStorageAccess() |
Web/API/Document/hasStorageAccess |
|
{{APIRef("Storage Access API")}}
hasStorageAccess()
は {{domxref("Document")}} インターフェイスのメソッドで、この文書がサードパーティの分離されたクッキーへのアクセス権を持っているかどうかを示す論理値で解決する {{jsxref("Promise")}} を返します。
詳しくは ストレージアクセス API を参照してください。
Note
このメソッドは {{DOMxRef("Document.hasUnpartitionedCookieAccess()")}} の別名です。{{DOMxRef("Document.hasUnpartitionedCookieAccess()")}} のためにこのメソッドを削除する予定はありません。
hasStorageAccess()
なし。
文書がサードパーティ Cookie にアクセスできるかどうかを示す論理値で解決する {{jsxref("Promise")}} です。サードパーティ Cookie にアクセスできる場合は true
、できない場合は false
です。
このメソッドが返す結果は、状況によっては不正確なことがあります。
- ユーザーがサードパーティクッキーをブロックするブラウザー設定をアクティブにしている場合があります。この場合、サードパーティのクッキーにはまだアクセスできないにもかかわらず、
true
が返されるかもしれません。このような状況を処理するには、クッキーの値が回復不可能になるようなエラーを適切に処理しなければなりません。例えば、個人設定へのアクセスがブロックされていることをユーザーに知らせ、それを使用するには再度サインインするよう促してください。 - ブラウザーは既定で、サードパーティクッキーへのアクセスをブロックしない場合があります。この場合、サードパーティクッキーがアクセス可能であっても
false
が返されるかもしれませんし、ストレージへのアクセスは(つまり {{domxref("Document.requestStorageAccess()")}} を通して)リクエストされる必要はないでしょう。この課題を回避するには、{{domxref("Document.cookie")}} に問い合わせてクッキーがアクセス可能かどうかを探し、アクセス可能でない場合は {{domxref("Document.requestStorageAccess()")}} を呼び出します。
Note
プロミスが解決され、関数が元々呼び出されたときにユーザージェスチャーイベントが処理されていた場合、解決ハンドラーはユーザーによるジェスチャーが処理されているかのように実行サレルるので、ユーザーによるアクティブ化が要求される API を呼び出すことができます。
InvalidStateError
{{domxref("DOMException")}}- : 現在の {{domxref("Document")}} がまだアクティブでない場合に発生します。
document.hasStorageAccess().then((hasAccess) => {
if (hasAccess) {
// ストレージへのアクセスはすでに許可されています。
console.log("クッキーへのアクセスが許可されました");
} else {
// ストレージへのアクセスはまだ許可されていません。
// requestStorageAccess() を呼び出す必要があります。
console.log("クッキーへのアクセスが拒否されました");
}
});
Note
より完全な例は、ストレージアクセス API の使用を参照してください。
{{Specifications}}
{{Compat}}
- {{domxref("Document.hasUnpartitionedCookieAccess()")}}, {{domxref("Document.requestStorageAccess()")}}, {{domxref("Document.requestStorageAccessFor()")}}
- ストレージアクセス API の使用
- Introducing Storage Access API (WebKit blog)