Html5-web-messaging
HTML5-Webメッセージング
Webメッセージングは、ドキュメントがブラウジングコンテキストを分離し、Domなしでデータを共有する方法です。 異なるドメイン、プロトコル、またはポートでのクロスドメイン通信の問題を無効にします
たとえば、iframeまたはvoice-versaに配置されている広告コンテナにページからデータを送信する場合、このシナリオでは、ブラウザーはセキュリティ例外をスローします。 Webメッセージングを使用すると、データをメッセージイベントとして渡すことができます。
メッセージイベント
メッセージイベントは、ドキュメント間メッセージング、チャネルメッセージング、サーバー送信イベント、およびWeb Sockets.itを起動します。
属性
Sr.No. | Attributes & Description |
---|---|
1 |
data 文字列データが含まれています |
2 |
origin ドメイン名とポートが含まれています |
3 |
lastEventId 現在のメッセージイベントの一意の識別子が含まれます。 |
4 |
source 元のドキュメントのウィンドウへの参照を含む |
5 |
ports 任意のメッセージポートによって送信されるデータが含まれます |
クロスドキュメントメッセージを送信する
クロスドキュメントメッセージを送信する前に、新しいiframeまたは新しいウィンドウを作成して、新しいWebブラウジングコンテキストを作成する必要があります。 postMessage()を使用してデータを送信でき、2つの引数があります。 彼らは-
- message -送信するメッセージ
- targetOrigin -オリジン名
例
iframeからボタンにメッセージを送信する
受信ドキュメントでクロスドキュメントメッセージを受信する
チャンネルメッセージング
ブラウジングコンテキスト間の双方向通信は、チャネルメッセージングと呼ばれます。 複数のオリジン間の通信に役立ちます。
MessageChannelおよびMessagePortオブジェクト
messageChannelの作成中に、データを送信するための2つのポートを内部で作成し、別のブラウジングコンテキストに転送します。
- * postMessage()*-メッセージスローチャネルを投稿する
- * start()*-データを送信します
- * close()*-ポートを閉じます
このシナリオでは、1つのiframeから別のiframeにデータを送信しています。 ここでは、関数内のデータを呼び出し、データをDOMに渡します。
上記のコードでは、ポート2からデータを取得していますが、データは2番目のiframeに渡されます
これで、2番目のドキュメントがportMsgHandler関数を使用してデータを処理します。