角度6分量函数无法从iframe的HostListener运行

角度6分量函数无法从iframe的HostListener运行,iframe,window,message,angular6,Iframe,Window,Message,Angular6,我有一个angular 6应用程序,在iframe中有一个不同的web应用程序。 当我使用postmessage函数从iframe接收消息时,我确实可以 onMessage函数,然后我确实访问了openOffNet,但是弹出窗口不起作用。 当我从按钮激活弹出窗口时,它不起作用。 有人知道为什么它不起作用吗 多谢各位 import {HostListener, Component, OnInit } from '@angular/core'; import {NgbModal, NgbA

我有一个angular 6应用程序,在iframe中有一个不同的web应用程序。 当我使用postmessage函数从iframe接收消息时,我确实可以 onMessage函数,然后我确实访问了openOffNet,但是弹出窗口不起作用。 当我从按钮激活弹出窗口时,它不起作用。 有人知道为什么它不起作用吗

多谢各位

 import {HostListener, Component, OnInit } from '@angular/core';
    import {NgbModal, NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';
    import {NgbdModalContentComponent} from '../ngbd-modal-content/ngbd-modal-content.component';
    import {ModalAddDeviceComponent} from '../popupBoxes/modal-add-device/modal-add-device.component';
    import {ModalAddOffnetComponent} from '../popupBoxes/modal-add-offnet/modal-add-offnet.component';

    @Component({
      selector: 'app-top-bar',
      templateUrl: './top-bar.component.html',
      styleUrls: ['./top-bar.component.css']
    })
    export class TopBarComponent implements OnInit {

      constructor(private modalService: NgbModal) { 
        (<any>window).onMessage= this.onMessage.bind(this);
      }

      ngOnInit() {
      }

       @HostListener('window:message', ['$event'])
      onMessage(e) {
        console.log('HostListener');
        if(e.data.function == 'subnetworkClicked'){

        }
        else{
          console.log("open popUp");
          this.openOffNet();
        }



      }




      openOffNet () : void {
        const modalRef = this.modalService.open(ModalAddOffnetComponent);

      }
    }
从'@angular/core'导入{HostListener,Component,OnInit};
从'@ng bootstrap/ng bootstrap'导入{NgbModal,NgbActiveModal};
从“../ngbd模态内容/ngbd模态内容.component”导入{NgbdModalContentComponent};
从“../popubox/modal add device/modal add device.component”导入{ModalAddDeviceComponent};
从“../popuboxes/modal add offnet/modal add offnet.component”导入{ModalAddOffnetComponent};
@组成部分({
选择器:“应用程序顶部栏”,
templateUrl:'./top bar.component.html',
样式URL:['./顶栏.component.css']
})
导出类TopBarComponent实现OnInit{
构造函数(私有modalService:NgbModal){
(window.onMessage=this.onMessage.bind(this);
}
恩戈尼尼特(){
}
@HostListener('窗口:消息',['$event']))
onMessage(e){
log('HostListener');
如果(e.data.function=='subnetworkClicked'){
}
否则{
控制台日志(“打开弹出窗口”);
这个.openOffNet();
}
}
openOffNet():void{
const modalRef=this.modalService.open(ModalAddOffnetComponent);
}
}

尝试使用“文档:消息”而不是“窗口:消息”

这可能很有用: