iframe innerhalb der angle2-Komponente, Eigenschaft 'contentWindow' existiert nicht für Typ 'HTMLElement'

Ich habe einen iframe in einer angular2-Komponente und versuche, den Inhalt des iframe zu ändern, indem ich auf das contentWindow zugreife.
Der iframe sollte eine einfache Schaltfläche enthalten.

Mein Code:

    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();
    }
   }

Wenn ich den Konstruktorcode kommentiere und die App starte, wird sie korrekt kompiliert und ausgeführt. Dann entkommentiere ich und alles läuft einwandfrei (der Button ist im iframe vorhanden).

Wenn ich den Code dekommentiere, starte ich die App (npm start). Ich habe Kompilierungsfehler mit der Meldung:

Property 'contentWindow' existiert nicht für Typ 'HTMLElement'

.

Ich habe auch die Alternative ausprobiert, den Code des Kostenstellers in ngOnInit (), ngAfterContentInit (), ngAfterViewInit () einzufügen, aber der Fehler bleibt bestehen.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage