Прослушать события кликов, если iframe содержит PDF в angular - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть div, который содержит iframe, основанный на переменной. Iframe содержит либо ссылку html, либо PDF.

Вот код HTML:

<div class="pp-content" #ppContent>
  <!-- PDF -->
  <ng-container *ngSwitchCase="PREVEW_TYPE.PDF">
    <iframe id="documentPreviewPDF" [src]="previewUrls[0] | sanitizeUrl" scrolling="no" *ngIf="previewUrls">
    </iframe>
  </ng-container>

  <!-- HTML -->
  <div *ngSwitchCase="PREVEW_TYPE.HTML" style="height: 100%;">
     <iframe id="documentPreviewHTML" [src]="previewUrls[0] | sanitizeUrl" *ngIf="previewUrls">
     </iframe>
  </div>
</div>

, и вот как я присоединяю событие click:

@ViewChild("ppContent", { static: true })
ppContent: ElementRef;

private _listenClickOnIframe(): void {
    if (this.ppContent) {
        const iframe = this.ppContent.nativeElement.getElementsByTagName("iframe")[0];
        if (iframe) {
            iframe.onload = () => {
                iframe.contentWindow.document.onclick = this._closeChannelListDD;
            };
        }
    }
}

private _closeChannelListDD(): void {
    console.log("Click");
}

В зависимости от типа кнопки изменяется предварительный просмотр и вызывается метод _listenClickOnIfram.

Это работает, если тип предварительного просмотра равен html, но в случае события нажатия кнопки PDF не работает?

...