0

是的,据我所知,授予对存储 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')
    }
4

0 回答 0