2

我之前在多个窗口中使用过 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 调用 awindow.open(PageBURL)打开 PageB。在 PageB 中,当我尝试从 localStorage 读取值时,我得到的只是null

JSON.parse(window.localStorage.getItem('someKey')); // gives me null

两个页面具有相同的document.domain值。我必须有一些愚蠢的东西,有没有人有任何想法要仔细检查?

4

1 回答 1

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",我可以毫无问题地读取数据。

于 2012-10-09T15:30:34.433 回答