4

我有一个将用户名保存在本地存储中的应用程序。Safari它适用于除private mode.

有没有办法在 Safari 隐私模式下保存这个变量?我尝试使用cookie,但它也不起作用......

有什么解决办法吗?

4

2 回答 2

9

我实现了一个 LocalStorageHandler 来检查浏览器是否支持本地存储,如果不支持,那么我使用 Cookie。

这是检查它是否支持本地存储的函数:

localStoreSupport: function ()
{
    var testKey = 'test', storage = window.sessionStorage;
    try
    {
        storage.setItem(testKey, '1');
        storage.removeItem(testKey);
        return true;
    }
    catch (error)
    {
        return false;
    }
}

这就是我处理错误的方式:

if (this.localStoreSupport())
    {
        localStorage.setItem(name, value);
    }
    else
    {
        document.cookie = name + "=" + encodeURIComponent(value) + expires + "; path=/";
    }

我希望这可以帮助你。

于 2015-12-03T09:11:03.297 回答
0

从 Safari 11 开始,它们支持私有模式下的 localStorage,与其他浏览器相同 提交:https ://github.com/WebKit/WebKit/commit/91d15f887ff7174f7754b25b8dc8ab459951e5e1 讨论:https ://bugs.webkit.org/show_bug.cgi?id =157010

于 2021-11-19T10:30:39.020 回答