Javascript 订阅来自Iframe的事件的最佳实践是什么?

Javascript 订阅来自Iframe的事件的最佳实践是什么?,javascript,angular,iframe,event-handling,dom-events,Javascript,Angular,Iframe,Event Handling,Dom Events,我有一份用英语写的申请书。 我的一个组件包含一个Iframe。在Iframe中,有一个(非角度的)应用程序发送javascript事件。 在我的组件中,我想订阅这些活动,但不确定最好的方式是什么。 如果我使用本机Javascript,我将执行以下操作: window.addEventListener('message', function(e) { console.log(e.data); }); 您可以为此创建一个可观察的 let iFrameEvents = Observabl

我有一份用英语写的申请书。 我的一个组件包含一个Iframe。在Iframe中,有一个(非角度的)应用程序发送javascript事件。 在我的组件中,我想订阅这些活动,但不确定最好的方式是什么。 如果我使用本机Javascript,我将执行以下操作:

window.addEventListener('message', function(e) {
    console.log(e.data);
});

您可以为此创建一个可观察的

  let iFrameEvents = Observable.create((observer) => {
   let eventSource = // create event source here;
   eventSource.onEvent = (event) => observer.next(event.data); // send the new data
  });

您可以订阅此observable以获取数据,例如,将
窗口.addEventListener
用作对服务器的任何异步调用。 本质上-创建一个服务
iframeCommunicator
(您可以选择任何您想要的名称)并在内部使用此代码。将其包装在事件发射器(或任何您想要的可观察对象)中,然后将服务注入到您的组件中,并像使用套接字或http一样使用它