Mam element iframe wewnątrz składnika angleular2 i próbuję zmienić zawartość elementu iframe, uzyskując dostęp do contentWindow.
Element iframe powinien zawierać prosty przycisk.iframe wewnątrz komponentu angle2, właściwość 'contentWindow' nie istnieje w typie 'HTMLElement'
Mój kod:
import { Component } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'component-iframe',
template: '<iframe id="iframe"></iframe>'
})
export class ComponentIframe {
constructor() {
let iframe = document.getElementById('iframe');
let content = '<button id="button" class="button" >My button </button>';
let doc = iframe.contentDocument || iframe.contentWindow;
doc.open();
doc.write(content);
doc.close();
}
}
Jeśli komentarz kod konstruktora i uruchomić aplikację, kompiluje i działa poprawnie. Następnie odkomentuję i wszystkie działają idealnie (przycisk jest obecny w elemencie iframe).
Gdybym decomment kod następnie uruchomić aplikację (początek npm) Mam błędów kompilacji z komunikatem:
własność 'contentWindow' nie istnieje w rodzaju 'HTMLElement'
.
Próbowałem również alternatywy umieszczania kodu konstruktora w ngOnInit(), ngAfterContentInit(), ngAfterViewInit(), ale błąd nadal występuje.