我做了一个使用localStorage的网站,但我主要在Opera中测试它。
网站获取本地存储数据的方式是使用JS for循环:
for (localStorage 中的 var key) {
//做东西!
}
当我的 friend 在 Chrome 和 Firefox 上使用该网站时,他们告诉我它会显示随机字符串。
此处的屏幕:/image/okfld.png (左侧列表是本地存储键)和 /image/0Qz5C.png
我的第一个假设是 Chrome 或 Firefox 在每次访问网站时添加了一些 localStorage 项目(删除 cookie 并不能解决再次出现的问题)。
问题是,当我的网站调用 users/localStorage 时,它只是说“获取所有 cookie key ”,并且似乎实际上获取了所有内容,甚至是浏览器创建的 key 。
我只能想到一种方法来修复它,即阻止 chrome 和 firefox 在 JS 本身中创建的所有关键字,并强制不显示它。
有什么想法吗?我知道这非常具体,但很麻烦。附加信息,我已经检查了他们正在使用的扩展,但它们似乎不是问题(因为我有相同的扩展,并且这些本地存储异常不是问题)。
感谢所有回复并容忍我:)
此外,如果其他人希望报告更多错误,请访问我的网站:
最佳答案
正如 Mathieu 指出的,localStorage 是一个对象。为了防止这种情况发生,请使用以下命令:
for (var key in localStorage) {
if (localStorage.hasOwnProperty(key)) {
// do stuff with it
}
}
或使用 lodash (_.forEach()
)、jQuery (jQuery.each()
) 或 Angular (angular.forEach()) 中的 forEach 方法
)。
关于javascript - Chrome 和 Firefox 中的 LocalStorage 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655536/