Send PostMessage Action
Send PostMessage アクションは、ブラウザの postMessage API を使用して、実行中の Labvanced 実験から親ウェブページ、カスタムアプリケーション、または埋め込まれたフレームなどの外部ターゲットへメッセージを送信します。
概要
このアクションは、アクション選択メニューの API Actions の下にリストされています。

一般的な使用例
- 参加者が特定の地点に到達したり、タスクを完了した際に、親アプリケーション(例:LMSや機関ポータル)に通知する。
- スコア、応答、条件ラベルなどの変数値を、リアルタイムで外部システムに渡す。
二者間のセットアップ
Labvanced と外部ページ(iFrame や親アプリケーションなど)との間で postMessage を使用することは 二者間のプロセス です。Labvanced は片方を処理します:このアクションがメッセージを送信します。もう一方は外部ページで、受信するようにプログラムする必要があります。
postMessage API は標準的なブラウザ機能です。外部ページには Labvanced からのメッセージを受け取るために window.addEventListener('message', handler) リスナーが必要です。そのリスナーは、メッセージの発信元が Labvanced であることを確認するためにドメインでフィルタリングする必要があります。そうすることで、信頼されたソースからのメッセージのみに反応します。そのコードは、あなたまたはあなたの開発者が記述する必要があります。必要な場合、AI コーディングツールが迅速に生成するのを助けることができます。
動作の仕組み
このアクションが発火すると、Labvanced は対象ウィンドウに postMessage を送信します。メッセージは、Destination Domain にある、window.addEventListener('message', handler) でリッスンしている任意のページに届きます。
メッセージペイロードには Value to send が含まれます。Key が設定されている場合、それはペイロードに含まれ、受信側がメッセージの種類を特定し、それに応じて処理することができます。
外部ページはメッセージを処理する責任があります。そのリスナーは、動作する前にメッセージの発信元を確認して、Labvanced から送信されたメッセージのみに反応することを保証する必要があります。
Send PostMessage を選択することで、次の設定が表示されます:

アクションオプション
| メニュー項目 | Send PostMessage アクションオプション |
|---|---|
Destination Domain | メッセージを受信する対象のオリジンを指定します。デフォルト値は * で、任意のオリジンに送信します。デスティネーションが既知の場合は * を完全なターゲット URL(例:https://yoursite.com)に置き換えます。セキュリティのために正確なドメインを指定することをお勧めします。 |
Key | 出力メッセージに識別子キーを追加します。これにより、メッセージペイロードが Key: value の形式になります。受信側はこれを使用して異なるタイプのメッセージを区別できます。キーが不要な場合は空白のままにします。 |
Value to send | 出力メッセージに含めるデータを定義します。編集アイコンをクリックして、Value-Select Menu を開き、定数値、Labvanced 変数、または式として送信する内容を指定します。 |
注意: メッセージを受信するシステム(親ページまたは外部アプリケーション)は、Labvanced からの受信 postMessage を処理するために window.addEventListener('message', ...) リスナーを実装する必要があります。
さらなる読書とオープン教材
- PostMessage Received Trigger: 外部ソースからの受信 postMessages をリッスンするためのペアトリガー。
- Value-Select Menu: 変数、定数、または式を使用して送信する値を定義する方法。
- Labvanced Web Bridge Extension: 埋め込まれた外部ウェブサイトとの通信に postMessage がどのように使用されるかのコンテキスト。
- Events Overview: Labvanced におけるトリガーとアクションのロジックシステムの全体的な紹介。