旧版本 Internet Explorer 中的 sessionStorage

sessionStorage in old versions of Internet Explorer

我正在尝试使用 sessionStorage 在每个会话中仅显示一次模态警报 - 我正在尝试在 IE 版本 < 9 中执行此操作。

警报会告诉用户他们的 IE 版本 < 9 有多糟糕,请升级。

使用 sessionStorage 在 IE 11 中工作正常。但在旧版本的 IE 中,我无法使其生效(sessionStorage 返回为 'undefined or null')。我已经在本地和实时站点上对此进行了测试。 sessionStorage 甚至可以在 IE < 9 中工作吗?如果不能,我可以在这些较旧的 IE 版本中使用什么来让每个 'session' 仅显示一次此警报?

我的代码如下:

if (sessionStorage.getItem('browserCheck') !== 'true') {
     // define alert function
     // call alert function
    sessionStorage.setItem('browserCheck','true');
}

显然,sessionStorage 在 IE 7 和 8 中有效。 在将开发工具模拟器从 IE11 切换到 IE 7 或 8 之前,我只是在浏览器中错误地删除了缓存。我能够通过取消选中 IE 中 'delete history' 提示符内的顶部框来解决此问题:

早些时候,sessionStorage 在我的开发工具控制台中以 'undefined or null' 的形式在 IE 7 和 8 中回归 - 但我认为这是因为一个单独的问题。它不是未定义的 - 它有效。

我相信 localStorage 实际上在 IE < 8 中无效 - 所以如果 localStorage 是你的问题,这个 link 很有帮助:HTML5 Local Storage fallback solutions