我想每秒从主页向嵌入式 stackBlitz 发送一条消息,而无需重新加载主页。我找到了一种方法,通过创建如下所示的 json 文件来发送它。我正在使用角。
sdk.embedGithubProject(
'stackblitz-frame',
userName + '//' + repoName,
{ height: 500, width: 1500 }
).then(vm => {
const source = interval(1000);
const subscribe = source.subscribe(val => {
var message = new Message();
message.timeInfo = this.Currenttime;
this.vm2 = vm;
vm.applyFsDiff({
create: {
'src/assets/input.json': JSON.stringify({ message })
},
destroy: ['randomFile.ts']
});
});
});
在上面的示例中,我每秒发送一次 videoInfo。问题是,当它启动时,它不允许我编辑 stackblitz 项目的其余部分。我注意到在 StackBlitz 中可以通过 iframe 之间的 postMessage 进行通信,但是当尝试使用它时,它是一个私有变量。
vm.rdc.port.postMessage
我相信它的工作原理如下:https ://developer.mozilla.org/en-US/docs/Web/API/MessagePort/postMessage
但这被设置为私有属性,创建通信文件的问题是应用程序的视图一直在重新加载。我嵌入了 stackblitz:https ://stackblitz.com/edit/adding-links-app 作为子示例,此 VM 容器的查看模式不允许我在 input.json 时创建查看模式和编辑更新。
你知道嵌入式 StackBlitz 和它所在的父页面之间的任何其他通信方式吗?
谢谢