首页 文章

仅限Firefox(v13)中的localStorage.removeItem()问题

提问于
浏览
0

我只在Firefox中遇到一个奇怪的问题 .

我将项目保存到localStorage(其中一个是一个非常大的JSON对象,我用JSON.stringify进行了字符串化) . 问题是,当我尝试在localStorage对象上使用removeItem()时,它会清除整个事物 . 所有属性都被清除 . 但是,如果我刷新页面,属性会回来 . 这适用于Safari,Chrome和Opera(最新版本),但只有Firefox有这个奇怪的问题 .

我已将问题隔离到单行,我调用localStorage.removeItem(“value”) . 以前有人见过这样的事吗?

我甚至用窗口对象上的“storage”事件做了一些调试,只是为了看看发生了什么 . 我包括了下面的输出 . 当我尝试删除一个属性,任何属性时,所有这些都会回来 .

altKey未定义

attrChange undefined

attrName undefined

气泡假

可取消的错误

ctrlKey未定义

currentTarget窗口周末度假

数据未定义

delegateTarget窗口周末度假

eventPhase 2

handleObj Object {type =“storage”,origType =“storage”,guid = 9}

jQuery17207456704310204192是的

metaKey未定义

originalEvent存储

relatedNode undefined

relatedTarget undefined

shiftKey未定义

srcElement未定义

目标窗口周末度假

timeStamp 1340773330422505

输入“存储”

查看undefined

哪个未定义

isDefaultPrevented returnFalse()

isImmediatePropagationStopped returnFalse()

isPropagationStopped returnFalse()

preventDefault函数()

stopImmediatePropagation函数()

stopPropagation函数()

proto 对象{preventDefault = function(),stopPropagation = function(),stopImmediatePropagation = function(),more ...} storage changed cityli ... 0771360(第55行)

altKey未定义

attrChange undefined

attrName undefined

气泡假

可取消的错误

ctrlKey未定义

currentTarget窗口周末度假

数据未定义

delegateTarget窗口周末度假

eventPhase 2

handleObj Object {type =“storage”,origType =“storage”,guid = 9}

jQuery17207456704310204192是的

metaKey未定义

originalEvent存储

relatedNode undefined

relatedTarget undefined

shiftKey未定义

srcElement未定义

目标窗口周末度假

timeStamp 1340773330470620

输入“存储”

查看undefined

哪个未定义

isDefaultPrevented returnFalse()

isImmediatePropagationStopped returnFalse()

isPropagationStopped returnFalse()

preventDefault函数()

stopImmediatePropagation函数()

stopPropagation函数()

proto 对象{preventDefault = function(),stopPropagation = function(),stopImmediatePropagation = function(),more ...} storage changed cityli ... 0771360(第55行)

altKey未定义

attrChange undefined

attrName undefined

气泡假

可取消的错误

ctrlKey未定义

currentTarget窗口周末度假

数据未定义

delegateTarget窗口周末度假

eventPhase 2

handleObj Object {type =“storage”,origType =“storage”,guid = 9}

jQuery17207456704310204192是的

metaKey未定义

originalEvent存储

relatedNode undefined

relatedTarget undefined

shiftKey未定义

srcElement未定义

目标窗口周末度假

timeStamp 1340773331099462

输入“存储”

查看undefined

哪个未定义

isDefaultPrevented returnFalse()

isImmediatePropagationStopped returnFalse()

isPropagationStopped returnFalse()

preventDefault函数()

stopImmediatePropagation函数()

stopPropagation函数()

proto 对象{preventDefault = function(),stopPropagation = function(),stopImmediatePropagation = function(),more ...} storage changed cityli ... 0771360(第55行)

altKey未定义

attrChange undefined

attrName undefined

气泡假

可取消的错误

ctrlKey未定义

currentTarget窗口周末度假

数据未定义

delegateTarget窗口周末度假

eventPhase 2

handleObj Object {type =“storage”,origType =“storage”,guid = 9}

jQuery17207456704310204192是的

metaKey未定义

originalEvent存储

relatedNode undefined

relatedTarget undefined

shiftKey未定义

srcElement未定义

目标窗口周末度假

timeStamp 1340773332394871

输入“存储”

查看undefined

哪个未定义

isDefaultPrevented returnFalse()

isImmediatePropagationStopped returnFalse()

isPropagationStopped returnFalse()

preventDefault函数()

stopImmediatePropagation函数()

stopPropagation函数()

proto 对象{preventDefault = function(),stopPropagation = function(),stopImmediatePropagation = function(),more ...} storage changed cityli ... 0771360(第55行)

altKey未定义

attrChange undefined

attrName undefined

气泡假

可取消的错误

ctrlKey未定义

currentTarget窗口周末度假

数据未定义

delegateTarget窗口周末度假

eventPhase 2

handleObj Object {type =“storage”,origType =“storage”,guid = 9}

jQuery17207456704310204192是的

metaKey未定义

originalEvent存储

relatedNode undefined

relatedTarget undefined

shiftKey未定义

srcElement未定义

目标窗口周末度假

timeStamp 1340773332395014

输入“存储”

查看undefined

哪个未定义

isDefaultPrevented returnFalse()

isImmediatePropagationStopped returnFalse()

isPropagationStopped returnFalse()

preventDefault函数()

stopImmediatePropagation函数()

stopPropagation函数()

proto 对象{preventDefault = function(),stopPropagation = function(),stopImmediatePropagation = function(),more ...} storage changed cityli ... 0771360(第55行)

altKey未定义

attrChange undefined

attrName undefined

气泡假

可取消的错误

ctrlKey未定义

currentTarget窗口周末度假

数据未定义

delegateTarget窗口周末度假

eventPhase 2

handleObj Object {type =“storage”,origType =“storage”,guid = 9}

jQuery17207456704310204192是的

metaKey未定义

originalEvent存储

relatedNode undefined

relatedTarget undefined

shiftKey未定义

srcElement未定义

目标窗口周末度假

timeStamp 1340773361375308

输入“存储”

查看undefined

哪个未定义

isDefaultPrevented returnFalse()

isImmediatePropagationStopped returnFalse()

isPropagationStopped returnFalse()

preventDefault函数()

stopImmediatePropagation函数()

stopPropagation函数()

proto 对象{preventDefault = function(),stopPropagation = function(),stopImmediatePropagation = function(),more ...} storage changed cityli ... 0771360(第55行)

1 回答

  • 0

    对不起伙计们,我甚至不知道怎么解释这个,但我找到了答案:http://treasonx.com/blog/2012/05/08/firefox-localstorage-bug/

    如果您执行以下操作,则会显示该错误 . 如果您与localStorage的第一次交互是removeItem,则无法从localStorage对象获得正确的长度 . 似乎已经删除了localStorage中的所有项目 . 事实并非如此,浏览器只是没有使用localStoage的内容更新其缓存 .

    在问题得到解决之前,这是建议的解决方法:

    现在的解决方法是在使用localStorage进行任何其他操作之前获取localStorage对象的长度,以使其按预期工作 .

相关问题