3

window.postMessageを使用して2つのウィンドウが通信できるようにしたいのですが。ただし、これらのウィンドウには初期接続がありません---一方は他方のiframeではありません。これらの2つのウィンドウが相互に「検索」して通信できるようにする方法はありますか?ウィンドウが「名前」で別のウィンドウを検索する方法はないようです。両方が同じドメインにCookieを設定するように手配することはできますが、オブジェクト/ポインターをCookieに入れる方法はありません。

4

1 に答える 1

1

私は間違っていた!HTML5 Weeklyが出たばかりで、まさにこの問題を解決する記事へのリンクが含まれていました。

この手法はlocalStorage、同じドメイン上のすべてのウィンドウで共有される監視可能で変更可能なリソースとして を利用します。Facebook と Google は何年も前からこれを行ってきました。

非常に読みやすいコードのデモがあります(これを複数のウィンドウで並べて開くと、かなり衝撃的です)。ただし、中心的なメカニズムは次のとおりです。

イベントをブロードキャストする

window.localStorage.setItem('key', value);

イベントをリッスンする

window.addEventListener('storage', function(event){
    var message = event.newValue;
}

これで吹き飛ばされました。どうにかしてこれを自分で実装する必要があります。

于 2013-03-13T13:34:56.377 に答える