我有一个用Angular编写的应用程序。 我的组件之一包含一个Iframe。在iframe中,有一个(非角度的)应用程序可以发送javascript事件。 在我的组件中,我想订阅这些事件,但不确定什么是最好的方法。 如果我使用本地Javascript,则可以执行以下操作:
window.addEventListener('message', function(e) {
console.log(e.data);
});
答案 0 :(得分:0)
您可以为此创建一个可观察对象
let iFrameEvents = Observable.create((observer) => {
let eventSource = // create event source here;
eventSource.onEvent = (event) => observer.next(event.data); // send the new data
});
,您可以订阅此观察表以获取数据
答案 1 :(得分:0)
例如,将window.addEventListener
用作对服务器的任何异步调用。
本质上-创建服务iframeCommunicator
(您可以选择任何名称),然后在内部使用此代码。将其包装在事件发射器(或您想要的任何可观察对象)中,然后将服务注入到组件中,然后像使用套接字或http一样使用它。