我在Firefox中只有一个奇怪的问题。
我将项目保存到localStorage(其中一个是一个非常大的JSON对象,我用JSON.stringify进行了字符串化)。问题是,当我尝试在localStorage对象上使用removeItem()时,它会清除整个事物。所有属性都被清除。但是,如果我刷新页面,属性会回来。这适用于Safari,Chrome和Opera(最新版本),但只有Firefox有这个奇怪的问题。
我已将问题隔离到单行,我调用localStorage.removeItem(" value")。有没有人见过这样的事情?
我甚至用"存储"做了一些调试。窗口对象上的事件,只是为了看看发生了什么。我包括了下面的输出。当我尝试删除一个属性,任何属性时,所有这些都会回来。
方altKey 未定义
attrChange 未定义
attrName 未定义
气泡 假
取消 假
中ctrlKey 未定义
currentTarget当前 窗口周末度假
数据 未定义
delegateTarget 窗口周末度假
的EventPhase 2
handleObj 对象{type =" storage",origType =" storage",guid = 9}
jQuery17207456704310204192 真
metaKey 未定义
originalEvent 存储
relatedNode 未定义
relatedTarget 未定义
Shift键, 未定义
srcElement 未定义
目标 窗口周末度假
的timeStamp 1340773330422505
型 "存储"
视图 未定义
其中 未定义
isDefaultPrevented returnFalse()
isImmediatePropagationStopped returnFalse()
isPropagationStopped returnFalse()
的preventDefault 函数()
stopImmediatePropagation 函数()
stopPropagation 函数()
原 对象{preventDefault = function(),stopPropagation = function(),stopImmediatePropagation = function(),more ...} 存储变了 cityli ... 0771360(第55行)
方altKey 未定义
attrChange 未定义
attrName 未定义
气泡 假
取消 假
中ctrlKey 未定义
currentTarget当前 窗口周末度假
数据 未定义
delegateTarget 窗口周末度假
的EventPhase 2
handleObj 对象{type =" storage",origType =" storage",guid = 9}
jQuery17207456704310204192 真
metaKey 未定义
originalEvent 存储
relatedNode 未定义
relatedTarget 未定义
Shift键, 未定义
srcElement 未定义
目标 窗口周末度假
的timeStamp 1340773330470620
型 "存储"
视图 未定义
其中 未定义
isDefaultPrevented returnFalse()
isImmediatePropagationStopped returnFalse()
isPropagationStopped returnFalse()
的preventDefault 函数()
stopImmediatePropagation 函数()
stopPropagation 函数()
原 对象{preventDefault = function(),stopPropagation = function(),stopImmediatePropagation = function(),more ...} 存储变了 cityli ... 0771360(第55行)
方altKey 未定义
attrChange 未定义
attrName 未定义
气泡 假
取消 假
中ctrlKey 未定义
currentTarget当前 窗口周末度假
数据 未定义
delegateTarget 窗口周末度假
的EventPhase 2
handleObj 对象{type =" storage",origType =" storage",guid = 9}
jQuery17207456704310204192 真
metaKey 未定义
originalEvent 存储
relatedNode 未定义
relatedTarget 未定义
Shift键, 未定义
srcElement 未定义
目标 窗口周末度假
的timeStamp 1340773331099462
型 "存储"
视图 未定义
其中 未定义
isDefaultPrevented returnFalse()
isImmediatePropagationStopped returnFalse()
isPropagationStopped returnFalse()
的preventDefault 函数()
stopImmediatePropagation 函数()
stopPropagation 函数()
原 对象{preventDefault = function(),stopPropagation = function(),stopImmediatePropagation = function(),more ...} 存储变了 cityli ... 0771360(第55行)
方altKey 未定义
attrChange 未定义
attrName 未定义
气泡 假
取消 假
中ctrlKey 未定义
currentTarget当前 窗口周末度假
数据 未定义
delegateTarget 窗口周末度假
的EventPhase 2
handleObj 对象{type =" storage",origType =" storage",guid = 9}
jQuery17207456704310204192 真
metaKey 未定义
originalEvent 存储
relatedNode 未定义
relatedTarget 未定义
Shift键, 未定义
srcElement 未定义
目标 窗口周末度假
的timeStamp 1340773332394871
型 "存储"
视图 未定义
其中 未定义
isDefaultPrevented returnFalse()
isImmediatePropagationStopped returnFalse()
isPropagationStopped returnFalse()
的preventDefault 函数()
stopImmediatePropagation 函数()
stopPropagation 函数()
原 对象{preventDefault = function(),stopPropagation = function(),stopImmediatePropagation = function(),more ...} 存储变了 cityli ... 0771360(第55行)
方altKey 未定义
attrChange 未定义
attrName 未定义
气泡 假
取消 假
中ctrlKey 未定义
currentTarget当前 窗口周末度假
数据 未定义
delegateTarget 窗口周末度假
的EventPhase 2
handleObj 对象{type =" storage",origType =" storage",guid = 9}
jQuery17207456704310204192 真
metaKey 未定义
originalEvent 存储
relatedNode 未定义
relatedTarget 未定义
Shift键, 未定义
srcElement 未定义
目标 窗口周末度假
的timeStamp 1340773332395014
型 "存储"
视图 未定义
其中 未定义
isDefaultPrevented returnFalse()
isImmediatePropagationStopped returnFalse()
isPropagationStopped returnFalse()
的preventDefault 函数()
stopImmediatePropagation 函数()
stopPropagation 函数()
原 对象{preventDefault = function(),stopPropagation = function(),stopImmediatePropagation = function(),more ...} 存储变了 cityli ... 0771360(第55行)
方altKey 未定义
attrChange 未定义
attrName 未定义
气泡 假
取消 假
中ctrlKey 未定义
currentTarget当前 窗口周末度假
数据 未定义
delegateTarget 窗口周末度假
的EventPhase 2
handleObj 对象{type =" storage",origType =" storage",guid = 9}
jQuery17207456704310204192 真
metaKey 未定义
originalEvent 存储
relatedNode 未定义
relatedTarget 未定义
Shift键, 未定义
srcElement 未定义
目标 窗口周末度假
的timeStamp 1340773361375308
型 "存储"
视图 未定义
其中 未定义
isDefaultPrevented returnFalse()
isImmediatePropagationStopped returnFalse()
isPropagationStopped returnFalse()
的preventDefault 函数()
stopImmediatePropagation 函数()
stopPropagation 函数()
原 对象{preventDefault = function(),stopPropagation = function(),stopImmediatePropagation = function(),more ...} 存储变了 cityli ... 0771360(第55行)
答案 0 :(得分:0)
对不起伙计们,我甚至不知道怎么解释这个,但我在这里找到答案:http://treasonx.com/blog/2012/05/08/firefox-localstorage-bug/
如果您执行以下操作,则会显示错误。如果您与localStorage的第一次交互是removeItem,则无法从localStorage对象获得正确的长度。似乎已经删除了localStorage中的所有项目。情况并非如此,浏览器只是没有使用localStoage的内容更新其缓存。
这是建议的解决方法,直到问题得到解决:
现在的解决方法是在使用localStorage进行任何其他操作之前获取localStorage对象的长度,以便它按预期工作。