在我的 Angular 应用程序中,我必须打开一个新窗口并将一个事件发送回 Controller 。该代码适用于 Chrome 和 Firefox,但它不适用于 Edge
下面是来自外部文件的代码
try {
var ev = new Event('abc');
ev['data'] = model;
window.opener.dispatchEvent(ev);
} catch (e) {
alert(e);
}
在外部窗口中,我收到警告 ERROR:invalid argument.
在 Angular 组件中我有监听器
@HostListener('window:abc', ['$event'])
无法从其他答案中获得太多信息。
请指导 谢谢
最佳答案
问题不在于 disptachEvent。这是因为子窗口失去了打开它的父 Angular 组件的范围。 为了解决这个问题,我从这个 thread 中找到了解决方案.
在打开子窗口之前我们必须设置angularComponentRef的引用
window['angularComponentRef'] = {component: this, zone: _ngZone};
关于javascript - dispatchEvent 不能在边缘工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51780072/