2

以前は問題なく複数のウィンドウで localStorage を使用していましたが、何らかの理由でこの新しいアプリケーションではまったく機能していません。

PageA と PageB の 2 つのページがあります。PageA は、次のように localStorage にいくつかのデータを設定します。

var someData = {
    item1: 'foo',
    item2: 'bar'
};
window.localStorage.setItem('someKey', JSON.stringify(someData));

を介してすぐにデータを読み込もうとすると、正常にJSON.parse(window.localStorage.getItem('someKey'));動作します。

次に、PageA は a を呼び出してwindow.open(PageBURL)PageB を開きます。PageB で、localStorage から値を読み取ろうとすると、次のようになりますnull

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

両方のページのdocument.domain値は同じです。私が見逃しているばかげた何かがあるに違いありません。再確認すべきことのアイデアを持っている人はいますか?

4

1 に答える 1

1

localStoragejavascript ではなく、完全なホスト ドメインで実行されることが判明しましたdocument.domain

PageA はof で実行さ"foo.common.net"れます。document.domain"common.net"

PageB はof の下"bar.common.net"で実行されます。document.domain"common.net"

PageA を で実行するように切り替えると"bar.common.net"、問題なくデータを読み取ることができます。

于 2012-10-09T15:30:34.433 に答える