javascript - Chrome 和 Firefox 中的 LocalStorage 异常

标签 javascript jquery html google-chrome

我做了一个使用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 本身中创建的所有关键字,并强制不显示它。

有什么想法吗?我知道这非常具体,但很麻烦。附加信息,我已经检查了他们正在使用的扩展,但它们似乎不是问题(因为我有相同的扩展,并且这些本地存储异常不是问题)。

感谢所有回复并容忍我:)

此外,如果其他人希望报告更多错误,请访问我的网站:

http://youtube-collections.tumblr.com/

最佳答案

正如 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/

相关文章:

JQuery CSS 转换器无法正常工作

javascript - 为什么使用.on() 来添加事件而不是直接添加事件?

html - 如何在图像上放置图标?

javascript - 使用 jQuery 突出显示搜索字符串

javascript - 为什么我的函数不能识别我的全局变量? (JavaScript)

javascript - 如何禁用选择选项的值? (vue.js 2)

javascript - 为什么这个 prototypjs observe 对回调函数有绑定(bind)?

javascript - 使用 Javascript 根据其他键的存在显示 JSON 值

javascript - 使用javascript删除内联 block 中的空格

javascript - 在排序数组中进行线性搜索,增量为 2 而不是 1