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

Chrome扩展:如何在侧边栏显示沙箱页面并实现消息收发?

Chrome侧边栏沙箱页面的消息通信问题

我需要在Chrome侧边栏中显示沙箱页面(sandboxed page),并实现与该页面的消息收发。已知沙箱页面的通信只能通过window.postMessage()实现,但我无法获取侧边栏(sidePanel)的window对象。

细节说明

  • 已成功将沙箱页面设置为侧边栏的显示内容,但无法实现消息收发
  • 谷歌提供的沙箱页面示例仅展示了插入<iframe/>的方式,且该iframe仅用于返回字符串而非显示内容,但我需要沙箱页面正常展示
  • 不确定侧边栏的window对象是否与当前标签页的window为同一对象,也不清楚如何获取它

当前临时实现方案

我目前的临时解决方法是创建sidePanel.html页面,在其中嵌入一个<iframe/>,将其src指向sandbox.html,并设置宽高为100%以填满侧边栏。通过以下代码实现通信:

sidePanel.html 中的发送逻辑:

document.getElementById('theFrame').contentWindow.postMessage(message, '*');

sandbox.html 中的监听与回复逻辑:

// 设置消息事件监听器
window.addEventListener('message', function (event) {
  const command = event.data.command;
  // ... 此处为具体的消息处理逻辑
  event.source.postMessage({ result: result }, event.origin);
});

但该方案并不理想,我怀疑是否存在操作误区——难道在侧边栏中实现可收发消息的沙箱页面,真的只能通过嵌套<iframe/>的方式吗?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:05:18