发送 PostMessage 动作
发送 PostMessage 动作使用浏览器的 postMessage API 将您的 Labvanced 实验中运行的消息发送到外部目标,例如父网页、自定义应用程序或嵌入框架。
概述
此动作在动作选择菜单中列在 API 动作 下。

常见用例
- 当参与者达到某一点或完成任务时,通知父应用程序(例如 LMS 或机构门户)。
- 实时将变量值(例如分数、响应或条件标签)传递到外部系统。
双向设置
在 Labvanced 和外部页面(例如 iFrame 或父应用程序)之间使用 postMessage 是一个 双向过程。 Labvanced 处理一侧:此动作发送消息。另一侧是外部页面,必须编程以接收它。
postMessage API 是一种标准浏览器功能。外部页面需要一个 window.addEventListener('message', handler) 监听器,以便从 Labvanced 获取消息。该监听器还应按域过滤,检查消息来源是 Labvanced,以便仅对来自受信任来源的消息采取行动。您或您的开发人员需要编写该代码。如果需要,人工智能编码工具可以帮助快速生成它。
工作原理
当此动作触发时,Labvanced 会向目标窗口发送 postMessage。该消息被发送到任何在 目标域 上使用 window.addEventListener('message', handler) 监听的页面。
消息有效负载包含要发送的 值。如果设置了 键,则会将其包含在有效负载中,以便接收方可以识别消息类型并进行相应处理。
外部页面负责处理消息。其监听器应检查消息来源,然后再采取行动,以确保仅对从 Labvanced 发送的消息做出响应。
选择 发送 PostMessage 后,将出现以下配置:

动作选项
| 菜单项 | 发送 PostMessage 动作选项 |
|---|---|
目标域 | 指定应接收消息的目标来源。默认值为 *,将消息发送到任何来源。当目标已知时,请将 * 替换为完整的目标 URL(例如,https://yoursite.com)。为了安全起见,建议指定确切域名。 |
键 | 将标识符键附加到传出的消息。这将消息有效负载结构化为 键: 值,接收方可以用来区分不同类型的消息。如果不需要键,请保持为空。 |
要发送的值 | 定义要包含在传出消息中的数据。点击编辑图标以打开 值选择菜单 并指定发送的内容:一个常量值、一个 Labvanced 变量或一个表达式。 |
注意: 接收消息的系统(父页面或外部应用程序)必须实现一个 window.addEventListener('message', ...) 监听器来处理来自 Labvanced 的传入 postMessage。
进一步阅读和开放材料
- PostMessage 接收触发器:用于监听来自外部源的传入 postMessages 的配对触发器。
- 值选择菜单:如何使用变量、常量或表达式定义要发送的值。
- Labvanced Web Bridge 扩展: 有关如何使用 postMessage 进行与嵌入外部网站的通信的背景信息。
- 事件概述: 完整介绍 Labvanced 中的触发器和动作逻辑系统。