[解決済み] JavaScript; 同じオリジンのタブ/ウィンドウ間の通信 [重複].
2023-07-02 05:33:43
質問
ウィンドウAとウィンドウBの2つのウィンドウを持っています。
- ウィンドウAとウィンドウBは同じドメイン
- ウィンドウ A とウィンドウ B には親ウィンドウがない。
- ウィンドウ A がウィンドウ B の参照を取得することは可能ですか?
- ウィンドウAがウィンドウBに何かを通知するための最もエレガントな方法は何ですか? (新しい HTML5 の仕様を含む)
私が知っているのは、これを行う2つの方法です。
- サーバーによるメッセージング:ウィンドウ B が、ウィンドウ A が何かを通知したかどうかを定期的にサーバーに問い合わせる。
- ローカル データによるメッセージング (HTML5): ウィンドウ A が何かを通知したい場合、ローカル データを変更し、ウィンドウ B は定期的にローカル データに変更がないかチェックします。
しかし、この2つの方法はそれほどエレガントではありません。
例えば、ウィンドウBの参照を取得して、window.postMessage() (HTML5)を使用するのが良いと思います。
最終的な目標は、Facebookのように、4つのFacebookタブを開いて1つのタブでチャットすると、すべてのFacebookタブでチャットが最新になるようなものを作ることです!これはすてきです。
どのように解決するのですか?
私は、質問で言及された共有ローカルデータの解決策にこだわっています。
localStorage
. これは、信頼性、パフォーマンス、およびブラウザの互換性の点で最良のソリューションであると思われます。
localStorage
はすべてのモダンブラウザで実装されています。
は
storage
イベントが発生するのは
その他の
タブが
localStorage
. これはコミュニケーション上、かなり便利です。
参考文献はこちらで紹介しています。
Web ストレージ
Webstorage - ストレージ イベント
関連
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] JavaScriptで2つの日付を比較する
-
[解決済み] JavaScriptでカンマを桁区切りにして数値を表示する方法
-
[解決済み] JavaScriptで2つの数値の間の乱数を生成する
-
[解決済み] Chromeの同一生成元ポリシーを無効にする
-
[解決済み] オブジェクトをメンバーとして、プレーンなJavaScriptオブジェクトをループさせる方法
-
[解決済み] jQueryでフォームデータをJavaScriptオブジェクトに変換する
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】タブやウィンドウ間の通信について
-
[解決済み] JavaScriptを使ったブラウザのタブ/ウィンドウ間の通信 [重複]について
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] BlobからArrayBufferへ移行する方法
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
-
[解決済み] javascriptでオプションのパラメータを扱う