2

HTML5 postMesssage APIを使用すると、ウィンドウ オープナーと openee の間でメッセージを送信できます。ただし、受信側ウィンドウへの参照/リンクが必要です。

サーバーの助けを借りずに、同じドメイン名の下で、ユーザー (たとえば、複製タブ) の同じセッションで開かれたすべてのウィンドウ サブスクライバーにイベントをブロードキャストする純粋なクライアント側の JavaScript の方法はありますか?

今のところ、いくつかのアイデアが思い浮かびます

  • サーバー側チャネル ($_SESSION による) とポーリング
  • JS Cooking の更新とポーリング (ハード クッキー プレイ)
  • localstorage の更新とポーリング (最悪の場合でも)
  • WebRTC? (ブラウザーのサポートが不十分)

見逃した API はありますか?

ところで、クロスドメインは必要ありません。私は同じドメインを考えており、複数のユーザーが開いています。

4

1 に答える 1

1

回避策を探している人向け。

window.localStorage (sessionStorage でさえも) を使用することになり、onstorage トリガーのイベント ハンドラーを使用します。

sessionStorage の変更が別のウィンドウにディスパッチされる場合とディスパッチされない場合があるという、一部のブラウザ (まあ、つまり IE) でのセッション分離に関する問題があります。一方、 localStorage の方が優れています。

于 2013-10-30T01:10:28.010 に答える