Javascript 页面之间的本地存储更新;在FF 39.0和;Chrome 44,但不在Safari 8.0中

Javascript 页面之间的本地存储更新;在FF 39.0和;Chrome 44,但不在Safari 8.0中,javascript,html,safari,local-storage,Javascript,Html,Safari,Local Storage,我创建了一个离线站点,由2个.html页面和1个底层.js页面组成,其中包含必要的功能(两个html页面都引用此js页面): 1) edit.html是用户以简单的html形式输入值数组,并在提交时存储在JSON stringify-d本地存储变量(“personList”)中。然后脚本执行window.location.href=“main.html”加载另一个页面 2) main.html在body onload事件中,运行一个函数,首先检索本地存储变量“personList”。如果未定义“

我创建了一个离线站点,由2个.html页面和1个底层.js页面组成,其中包含必要的功能(两个html页面都引用此js页面):

1) edit.html是用户以简单的html形式输入值数组,并在提交时存储在JSON stringify-d本地存储变量(
“personList”
)中。然后脚本执行
window.location.href=“main.html”加载另一个页面

2) main.html
body onload
事件中,运行一个函数,首先检索本地存储变量
“personList”
。如果未定义
“personList”
,它会将用户重定向回编辑.html以输入值;否则,它会对
“personList”
进行JSON解析,将其返回到数组中,并用值填充main.html页面的几个区域

这在FF 39、Chrome 44和Safari 8中工作良好;在初始加载main.html页面时,这些值与在edit.html中输入的值相匹配

问题出现在这里:

main.html有一个允许用户编辑列表的链接;该链接只需执行一个
window.location.href=“edit.html”
即可将用户带回该页面edit.html使用本地存储变量
“personList”
中的值填充表单,然后用户可以更新这些值并再次点击提交(然后将用户带回main.html

  • 在FF 39中,main.html按预期显示
    “personList”
    中更新的
    • 在Chrome 44中,main.html按预期显示
      “personList”
      中更新的
  • 在Safari 8中,main.html显示
    “personList”
    更新前的值
对Safari developer tools中localStorage变量内容的检查确认,在更新
“personList”
edit.html值时,main.html值似乎被缓存(因为它仍然包含旧内容)

如果我关闭Safari窗口,然后打开一个新窗口,它会提取
“personList”
的更新值,但我显然不希望用户必须关闭并重新打开浏览器。在
onLoad
事件(将值加载到main.html中)中调用的函数肯定会在初始加载和来自edit.html时触发


我在Google上搜索了stack,没有找到这个场景-有什么想法吗?

我还是很想听听解决这个问题的人的意见,但我在我的应用程序中使用了一个弹出的临时div来获取值(而不是导航到另一个html页面)。这种方法似乎在FF和Safari中都有效,现在已经足够好了。我的问题是类似的。