我之前在多个窗口中使用localStorage没有任何问题,但由于某些原因,在这个新应用程序中,它根本不起作用。
我有两个页面,PageA和PageB。 PageA在localStorage中设置了一些数据:
var someData = {
item1: 'foo',
item2: 'bar'
};
window.localStorage.setItem('someKey', JSON.stringify(someData));
如果我立即尝试通过JSON.parse(window.localStorage.getItem('someKey'));
读取数据,则效果正常。
PageA然后调用window.open(PageBURL)
打开PageB。在PageB中,当我尝试从localStorage读取值时,我得到的只是null
:
JSON.parse(window.localStorage.getItem('someKey')); // gives me null
两个页面都具有相同的document.domain
值。必须有一些我不知道的愚蠢,有没有人有任何想法要仔细检查?
答案 0 :(得分:1)
在完整主机域下运行localStorage
次运行,而不是javascript document.domain
。
PageA在"foo.common.net"
下运行,document.domain
为"common.net"
。
PageB在"bar.common.net"
下运行,document.domain
为"common.net"
。
如果我将PageA切换为在"bar.common.net"
下运行,我可以毫无问题地读取数据。