如何在 Safari 隐私模式的本地存储中保存
How to save in local storage of Safari Private Mode
我有一个在本地存储中保存用户名的应用程序。
除了 Safari
in private mode
.
之外,它适用于所有浏览器
有没有办法在 Safari 私有模式下保存这个变量?我尝试使用 cookie,但它也不起作用...
有解决办法吗?
我实现了一个 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=/";
}
希望对您有所帮助。
从 Safari 11 开始,他们支持隐私模式下的 localStorage,与其他浏览器相同
提交:https://github.com/WebKit/WebKit/commit/91d15f887ff7174f7754b25b8dc8ab459951e5e1
讨论:https://bugs.webkit.org/show_bug.cgi?id=157010
我有一个在本地存储中保存用户名的应用程序。
除了 Safari
in private mode
.
有没有办法在 Safari 私有模式下保存这个变量?我尝试使用 cookie,但它也不起作用...
有解决办法吗?
我实现了一个 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=/";
}
希望对您有所帮助。
从 Safari 11 开始,他们支持隐私模式下的 localStorage,与其他浏览器相同 提交:https://github.com/WebKit/WebKit/commit/91d15f887ff7174f7754b25b8dc8ab459951e5e1 讨论:https://bugs.webkit.org/show_bug.cgi?id=157010