Документ: метод hasStorageAccess()
Базовая версия 2023
Новое
С декабря 2023 года эта функция работает на последних устройствах и версиях браузеров. Эта функция может не работать на старых устройствах или браузерах.
Метод hasStorageAccess() интерфейса Document возвращает Promise, который разрешается булевым значением, указывающим, имеет ли документ доступ к сторонним неразделенным cookie.
Этот метод является частью API доступа к хранилищу.
Примечание: Этот метод — другое название для Document.hasUnpartitionedCookieAccess(). В настоящее время нет планов удалить этот метод в пользу Document.hasUnpartitionedCookieAccess().
Синтаксис
hasStorageAccess()
Параметры
Нет.
Возвращаемое значение
Promise, который разрешается булевым значением, указывающим, имеет ли документ доступ к cookie третьих сторон — true в случае наличия доступа и false в противном случае.
Результат, возвращаемый этим методом, может быть неточным в нескольких случаях:
- Пользователь может иметь активные настройки браузера, блокирующие cookie третьих сторон; в этом случае может быть возвращено
true, даже если доступ к cookie третьих сторон по-прежнему недоступен. Для обработки такой ситуации следует корректно обрабатывать любые ошибки, приводящие к невозможности получения значений cookie; например, сообщить пользователю, что доступ к его персонализированным настройкам заблокирован, и предложить ему снова войти в систему, чтобы использовать их. - Браузер может не блокировать доступ к cookie третьих сторон по умолчанию; в этом случае может быть возвращено
false, даже если доступ к cookie третьих сторон доступен, и запрос доступа к хранилищу не нужен (т.е., черезDocument.requestStorageAccess()). Чтобы обойти эту проблему, можно запроситьDocument.cookie, чтобы узнать, доступны ли ваши cookie, и вызватьDocument.requestStorageAccess(), если они недоступны.
Примечание: Если обещание разрешается и в момент вызова функции обрабатывалось событие пользовательского жеста, обработчик разрешения будет выполняться как если бы обрабатывался пользовательский жест, поэтому он сможет вызывать API, которые требуют активации пользователя.
Исключения
-
InvalidStateErrorDOMException -
Выбрасывается, если текущий
Documentеще не активен.
Примеры
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");
}
});
Примечание: См. Использование API доступа к хранилищу для более полного примера.
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильное устройство | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
hasStorageAccess |
119 | 85 | 65 | 105 | 11.1 | 120 | 65 | 80 | 11.3 | 25.0 | 120 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Document/hasStorageAccess