0

Firefox 和 Chrome 在通过密钥访问本地存储时返回不同的值。

alert(localStorage.mykey); // FF = null, Chrome = undefined
alert(localStorage.getItem('mykey')); // FF = null, Chrome = null

请参阅 Firefox 错误localStorage/sessionStorage 应该为未定义的键返回未定义(非空)。

从本质上讲,Chrome 和其他浏览器localStorage.mykey像 Firefox 对待它的任何其他数组对象一样对待它getItem()

所以,我的问题是:鉴于这种差异,检查 localStorage 中是否存在密钥的最佳方法是什么?

选项1:if(localStorage.getItem('key') === null)

选项 2:if(localStorage.key === null || localStorage.key === undefined)

||选项 3:没有#2的任何方法来检查 localStorage.key ?

4

1 回答 1

1

您使用的是哪个版本的 Firefox?在这种情况下,最新版本(我使用 Firefox 14 测试)返回undefined。无论如何,简单的测试是typeof localStorage.key == "string"

于 2012-11-07T22:15:18.690 回答