mirror of
https://github.com/liriliri/eruda.git
synced 2026-03-20 09:38:37 +08:00
33 lines
667 B
JavaScript
33 lines
667 B
JavaScript
/* Safe localStorage and sessionStorage.
|
|
*/
|
|
|
|
_('isUndef memStorage');
|
|
|
|
function exports(type, memReplacement)
|
|
{
|
|
if (isUndef(memReplacement)) memReplacement = true;
|
|
|
|
var ret;
|
|
|
|
switch (type)
|
|
{
|
|
case 'local': ret = window.localStorage; break;
|
|
case 'session': ret = window.sessionStorage; break;
|
|
}
|
|
|
|
try
|
|
{
|
|
// Safari private browsing
|
|
var x = 'test-localStorage-' + Date.now();
|
|
ret.setItem(x, x);
|
|
var y = ret.getItem(x);
|
|
ret.removeItem(x);
|
|
if (y !== x) throw new Error();
|
|
} catch (e)
|
|
{
|
|
if (memReplacement) return memStorage;
|
|
return;
|
|
}
|
|
|
|
return ret;
|
|
} |