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