是的,据我所知,授予对存储 api 的请求访问权限的方法是在 iframe 中请求用户手势,但即使我无法获得弹出窗口,也无法通过启动用户手势和调用 requeststorageaccess() fn单击 iframe 中的按钮,它仍然拒绝对第三方 cookie 的存储访问。
这篇https://webkit.org/blog/8124/introducing-storage-access-api/文章建议在没有访问权限的情况下使用 iframe 请求存储访问权限。
我已经以这种方式尝试过,但它不起作用,如果有人可以帮助的话....第三方cookie在safari中显示为过期,所以为了请求它的存储访问权限,我们需要在iframe中使用用户手势
<script>
function onLoginClicked() {
document.requestStorageAccess().then(() => {
console.log('Access granted: Safe to access storage now');
settingCookie();
}).catch(e => {
console.log("access denied")
});
}
function settingCookie() {
document.cookie = "lastname=kumar";
console.log(document.cookie);
}
if (navigator.userAgent.search("Safari") >= 0 && navigator.userAgent.search("Chrome") < 0) {
document.addEventListener("DOMContentLoaded", () => {
document.hasStorageAccess().then(access => {
if (access) {
console.log('has access');
settingCookie();
} else {
console.log('no access')
}
});
});
}
else {
console.log('not safari browser')
}