Javascript 在IE8中,从一个窗口将项目设置为localStorage并立即从另一个窗口获取该项目失败

Javascript 在IE8中,从一个窗口将项目设置为localStorage并立即从另一个窗口获取该项目失败,javascript,internet-explorer,internet-explorer-8,local-storage,Javascript,Internet Explorer,Internet Explorer 8,Local Storage,我在IE8上使用本地存储。我在一个弹出窗口中设置一个值,然后在opener窗口中调用一个函数,在这里我试图从localStorage获取该值 该值似乎不存在。如果我在尝试读取之前加上1秒的超时时间,该值似乎就在那里 这是本地存储的已知行为吗?如果是的话,什么是适当的处理方法 我在其他浏览器上没有遇到过这种情况,我应该期望在其他浏览器上也会遇到这种情况吗 代码: 弹出窗口: localStorage.setItem('myToken', token) 主窗口: localStorage.getI

我在IE8上使用本地存储。我在一个弹出窗口中设置一个值,然后在opener窗口中调用一个函数,在这里我试图从localStorage获取该值

该值似乎不存在。如果我在尝试读取之前加上1秒的超时时间,该值似乎就在那里

这是本地存储的已知行为吗?如果是的话,什么是适当的处理方法

我在其他浏览器上没有遇到过这种情况,我应该期望在其他浏览器上也会遇到这种情况吗

代码:

弹出窗口:

localStorage.setItem('myToken', token)
主窗口:

localStorage.getItem('myToken');

这是IE的正常行为。当IE中出现奇怪的错误时,请添加一个setTimeout。但是,请显示代码谢谢。我将在问题中添加相关的代码部分。在调用打开器窗口(导致调用
getItem
)之前,我在弹出窗口中调用
setItem
),然后关闭弹出窗口(如果我保持弹出窗口打开,它似乎不相关,因为它也不起作用)。当我在主窗口中读取之前添加300毫秒延迟时,该值存在。然而,仅仅添加这个超时并不是一个可靠的解决方案……我想到的问题是,为什么要从窗口调用set,从开瓶器获取?使用
opener.someFunction()
从opener进行设置,原因是我在弹出窗口中运行了一个流,在该流的末尾,我得到了需要保存的值。最简单的方法是立即将其保存在弹出代码中。这个问题直到我在IE8上测试时才出现。你的建议完全正确。谢谢