--- title: 'BroadcastChannel: message イベント' slug: Web/API/BroadcastChannel/message_event tags: - Communication - Event - EventSource - Reference - events - message - messaging translation_of: Web/API/BroadcastChannel/message_event ---
{{APIRef}}

message イベントは、メッセージがそのチャネルに到着したときに {{domxref('BroadcastChannel')}} オブジェクトに対して発生します。

バブリング なし
キャンセル 不可
インターフェイス {{domxref("MessageEvent")}}
イベントハンドラプロパティ {{domxref("BroadcastChannel.onmessage","onmessage")}}

実例

この例では、ユーザーがボタンをクリックしたときに {{htmlelement("textarea")}} の内容を放送する "Sender" の {{htmlelement("iframe")}} と、放送メッセージを受信し、その結果を {{htmlelement("div")}} 要素に書き込む2つの "Receiver" の <iframe> があります。

Sender

const channel = new BroadcastChannel('example-channel');
const messageControl = document.querySelector('#message');
const broadcastMessageButton = document.querySelector('#broadcast-message');

broadcastMessageButton.addEventListener('click', () => {
    channel.postMessage(messageControl.value);
})

Receiver 1

const channel = new BroadcastChannel('example-channel');
channel.addEventListener('message', (event) => {
  received.textContent = event.data;
});

Receiver 2

const channel = new BroadcastChannel('example-channel');
channel.addEventListener('message', (event) => {
  received.textContent = event.data;
});

結果

{{ EmbedLiveSample('Sender', '100%', '170px','' ,'' , 'dummy') }}

{{ EmbedLiveSample('Receiver_1', '100%', '150px','' ,'' , 'dummy') }}

{{ EmbedLiveSample('Receiver_2', '100%', '150px','' ,'' , 'dummy') }}

仕様

仕様 状態
{{SpecName('HTML WHATWG', 'indices.html#event-message')}} {{Spec2('HTML WHATWG')}}

ブラウザーの互換性

{{Compat("api.BroadcastChannel.message_event")}}

関連情報