首页 > 解决方案 > Angular 中订阅来自 iframe 的事件的最佳实践是什么?

问题描述

我有一个用 Angular 编写的应用程序。我的一个组件包含一个 iframe。在 Iframe 中,有一个(非角度的)应用程序可以发送 javascript 事件。在我的组件中,我想订阅这些事件,但不确定最好的方法是什么。如果我使用本机 Javascript,我会执行以下操作:

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

标签: javascriptangulariframeevent-handlingdom-events

解决方案


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

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

你可以订阅这个 observable 来获取你的数据


推荐阅读