Files
eruda/eustia/safeStorage.js
2016-12-30 19:19:28 +08:00

30 lines
621 B
JavaScript

_('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;
}