Javascript 如何使用Angular从父窗口向StackBlitz VM发送消息?

Javascript 如何使用Angular从父窗口向StackBlitz VM发送消息?,javascript,angular,iframe,postmessage,stackblitz,Javascript,Angular,Iframe,Postmessage,Stackblitz,我想在不重新加载主页的情况下,每秒从主页向嵌入式stackBlitz发送一条消息。 我找到了一种方法,通过创建一个json文件来发送它,如下所示。我用的是角的 sdk.embeddegithubproject( “闪电战框架”, 用户名+'/'+repoName, {高:500,宽:1500} )。然后(vm=>{ 常数源=间隔(1000); const subscribe=source.subscribe(val=>{ var message=新消息(); message.timeInfo=此

我想在不重新加载主页的情况下,每秒从主页向嵌入式stackBlitz发送一条消息。 我找到了一种方法,通过创建一个json文件来发送它,如下所示。我用的是角的

sdk.embeddegithubproject(
“闪电战框架”,
用户名+'/'+repoName,
{高:500,宽:1500}
)。然后(vm=>{
常数源=间隔(1000);
const subscribe=source.subscribe(val=>{
var message=新消息();
message.timeInfo=此.Currenttime;
this.vm2=vm;
vm.applyFsDiff({
创建:{
'src/assets/input.json':json.stringify({message})
},
销毁:['randomFile.ts']
});
});
});
在上面的例子中,我每秒发送一次视频信息。 问题是,当它启动时,它不允许我编辑stackblitz项目的其余部分。 我注意到,在StackBlitz中,可以通过IFrame之间的postMessage进行通信,但当尝试使用它时,它是一个私有变量

vm.rdc.port.postMessage
我相信它的工作原理如下:

但是这被设置为私有属性,创建用于通信的文件的问题是应用程序的视图一直在重新加载。 我嵌入了stackblitz: 作为child的一个例子,这个VM容器的视图模式不允许我在更新input.json时创建视图模式并进行编辑

你知道嵌入式StackBlitz和它所在的父页面之间的其他通信方式吗


谢谢

问题是,当它启动时,它不允许我编辑stackblitz项目的其余部分
你能解释一下它为什么不允许你编辑吗?因为它一直在重新加载,我无法键入任何内容,想象一下,当我在这里键入时,有人每秒都在单击F5。页面重新加载,我丢失了输入的内容。我刚刚尝试过,stackblitz只更新
input.json
,但我可以更改其他文件抱歉,我的意思是视图被重新加载,我无法编辑编辑模式,保存并检查此项目中的视图模式,例如:您可以将stackblitz选项
热重新加载触发器
更改为
保存
,然后stackblitz将不会在更改时更新预览,直到您保存项目