Cookies 如何在Safari专用模式的本地存储中保存

Cookies 如何在Safari专用模式的本地存储中保存,cookies,safari,local-storage,incognito-mode,Cookies,Safari,Local Storage,Incognito Mode,我有一个在本地存储中保存用户名的应用程序。 除了在私有模式下的Safari之外,它可以在所有浏览器上正常工作 有没有办法在Safari私有模式下保存此变量?我试着用饼干,但它也不起作用 有什么解决办法吗?我实现了一个LocalStorageHandler,它检查浏览器是否支持本地存储,如果不支持本地存储,那么我使用Cookie 此函数用于检查是否支持本地存储: localStoreSupport: function () { var testKey = 'test', storage =

我有一个在本地存储中保存用户名的应用程序。 除了在
私有模式下的
Safari
之外,它可以在所有浏览器上正常工作

有没有办法在Safari私有模式下保存此变量?我试着用饼干,但它也不起作用


有什么解决办法吗?

我实现了一个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=/";
    }

我希望这对您有所帮助。

您找到解决方法了吗?我尝试过使用amplify.js,它包装了多种存储技术。但是在一个window.location之后,内存又被清除了。@pidm,我回答了这个问题。您好,ofir,我建议进行编辑,将testKey从
test
更改为
\uu localStoreTest\uuuuu
,在您拒绝它之前获得了一些批准。我相信他们在这里使用的密钥(“test”)在这样的检查中太正常了,这很可能会给那些刚刚从这里复制代码,后来开始在其他地方使用带有“test”密钥的localStorage的人带来噩梦。你能解释一下你为什么拒绝它吗?