You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Workshop应用中使用iframe组件并调用Slate变量

在Foundry Workshop中使用iframe组件与Slate变量交互的完整指南

一、基础配置:iframe核心参数正确绑定

首先明确iframe组件的几个关键输入项:

  • URL:支持静态地址或绑定Slate字符串变量实现动态加载。如果需要切换加载页面,把目标URL存在Slate变量里,在iframe组件的「URL」输入框选择该变量即可生效。
  • 键(Key):这是唯一标识当前iframe实例的字符串,后续消息通信全靠它匹配。你之前用字符串Slate变量没生效,大概率是两个问题:要么变量为空字符串未正确赋值,要么sendMessage/getMessage动作里指定的键和iframe组件的键不匹配。确保变量是非空字符串,且两处的键完全一致(大小写敏感)。

二、输入/输出与事件触发逻辑

输入项

除了URL和键,还有「允许全屏」「允许支付」等权限类开关,可根据需求勾选,也能绑定布尔型Slate变量动态控制。

输出项

iframe组件会输出两类核心内容:

  • 加载状态:loading/completed/error,可绑定到Slate变量,用来做加载提示或错误处理。
  • 接收的消息:当iframe发消息过来时,通过getMessage动作把消息内容存到指定Slate变量中。

可触发事件

  • onLoad:iframe加载完成时触发,可绑定Slate动作(比如更新状态变量、显示成功提示)。
  • onError:iframe加载失败时触发,用于错误捕获和用户提示。
  • onMessage:收到iframe发送的消息时触发,必须绑定getMessage动作才能将消息存入Slate变量。

三、Slate与iframe的消息通信实战

1. Workshop → iframe 发送消息(用Slate的sendMessage动作)

步骤:

  1. 在Slate中创建动作,选择「sendMessage」。
  2. 「目标键」选择你给iframe组件设置的键(必须完全匹配)。
  3. 「消息内容」可写静态值,也可选择Slate变量(支持字符串、数字、对象类型)。
  4. 给按钮或其他触发源绑定这个动作,触发后消息就会发送给指定iframe。

iframe内部接收消息的代码示例:

window.addEventListener('message', (event) => {
  // 生产环境建议校验origin避免跨域风险
  // if (event.origin !== '你的Workshop域名') return;
  console.log('收到Workshop的消息:', event.data);
  // 这里可基于收到的内容做业务逻辑处理
});

2. iframe → Workshop 发送消息(触发Slate的getMessage动作)

步骤:

  1. 在iframe组件的事件配置里,找到「onMessage」,绑定一个Slate动作并选择「getMessage」。
  2. 在「getMessage」动作中,选择一个Slate变量(建议用对象类型,方便接收复杂消息)存储消息内容。
  3. 在iframe内部编写发送消息的代码:
// 发送字符串消息
window.parent.postMessage('来自iframe的消息', '*'); // 生产环境建议指定具体的Workshop域名

// 发送包含结构化数据的对象消息
window.parent.postMessage({ type: 'data_sync', content: '需要传给Slate的变量内容' }, '*');

执行这段代码后,Workshop的getMessage动作会自动把消息存入你指定的Slate变量,后续即可用该变量做其他业务逻辑。

四、常见问题排查

  • 键不生效:检查Slate变量是否有非空值,sendMessage的目标键和iframe组件的键是否完全一致。
  • 消息收不到:
    • 检查iframe内部的postMessage是否执行,targetOrigin是否设置正确(测试可用*,生产必须指定Workshop域名)。
    • 确认Workshop里的iframe组件已绑定onMessage事件到getMessage动作。
    • 查看浏览器控制台是否有跨域报错,若有需配置iframe页面的CORS或确保域名匹配。

内容的提问来源于stack exchange,提问作者Arthur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 06:25:19