Как создать iframes из массива URL-адресов домена и отправить сообщение после загрузки - PullRequest
0 голосов
/ 11 февраля 2020

Я работаю в приложении Angular 8, мне нужно отправить сообщение в массив доменов, когда подписан список доменов, и удалить фреймы, когда сообщение будет опубликовано.

**Component.html**

<div #nsFrameDiv [class]="'pomsg_frame_wrapper'">
  <ng-container>
    <iframe [id]="cookieDomain.domain" [src]="safeUrl(cookieDomain)" *ngFor="let cookieDomain of cookieDomains"></iframe>
  </ng-container>
</div>

**Component.ts**
safeUrl(domain) {   
    return this.sanitizer.bypassSecurityTrustResourceUrl(domain);
}

// domains is a array like ['http://aaa.domain.com','http://bbb.domain.com','http://ccc.domain.com']
this.domainService.domainReceived.subscribe((domains) => {
    this.cookieDomains = domains;
});

//Code to send a post message
  sendPostMessages() {
    const elms = this.frameDiv.nativeElement.getElementsByTagName('iframe');
    for (let i = 0; i < elms.length; i++) {
      const frameWindow = elms[i];      
      const postData = {
        data_key: 'data_key_value'
      }
      frameWindow.contentWindow.postMessage(postData, '*');
    }
  }

Любая помощь приветствуется.

...