角度6分量函数无法从iframe的HostListener运行
我有一个angular 6应用程序,在iframe中有一个不同的web应用程序。 当我使用postmessage函数从iframe接收消息时,我确实可以 onMessage函数,然后我确实访问了openOffNet,但是弹出窗口不起作用。 当我从按钮激活弹出窗口时,它不起作用。 有人知道为什么它不起作用吗 多谢各位角度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
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);
}
}
尝试使用“文档:消息”而不是“窗口:消息”这可能很有用: