【发布时间】:2017-04-18 04:59:04
【问题描述】:
如果我要在用户浏览器中使用 JavaScript 测试 localStorage,例如
var hasStorage = (function() {
try {
localStorage.setItem(mod, mod);
localStorage.removeItem(mod);
return true;
} catch (exception) {
return false;
}
}());
if (hasStorage) {
// store things in places
}
(来自:https://mathiasbynens.be/notes/localstorage-pattern)
我是否可以推断(无需明确检查)如果hasStorage === true,那么sessionStorage 也可用,或者是否可以禁用另一个启用另一个?
【问题讨论】:
-
localStorage可以在 Chromium 上禁用。没有禁用sessionStorage的选项。如果有的话,推断是如果localStorage被禁用,sessionStorage也将被禁用。这可以通过使用chromium-browser --disable-local-storage标志启动然后尝试设置sessionStorage在 chromium 上进行验证 -
@blex 在同一兼容性表中 firefox 有相反的支持顺序。虽然可以假设在正常操作中两者都存在,但没有规范可以保证这种假设。所以,为了安全起见,最好将它们视为独立的实体。
-
有趣的是,启动了带有
--disable-local-storage标志的铬,sessionStorage仍然被定义,试图设置localStorage记录Uncaught TypeError: Cannot read property 'setItem' of null
标签: javascript html local-storage session-storage