У меня есть 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 не работает?