2012-08-28 9 views
6

Estoy tratando de acceder a contentDocument y contentWindow de iframe en el siguiente código. Pero ambos son nulos.iframe contentDocument y contentWindow es nulo

var iframe = document.createElement('iframe'); 
    this.get__domElement$i().appendChild(iframe); 
    if (iframe.contentDocument) { 
     iframe.contentDocument.write("Hello"); 
    } 
    else if (iframe.contentWindow) { 
     iframe.contentWindow.document.body.innerHTML = "Hello"; 
    } 

¿Puede alguien decirme qué pasa con esto? Gracias

Cuando hago Document.Body.AppendChild (iframe), entonces contentDocument y contentWindow no son nulos.

¿Puede alguien decirme qué está mal cuando añado el iframe a div?

Muchas gracias.

Respuesta

2

sé que esto es un poco tarde, pero yo estaba investigando esto y tropezó en su pregunta:

que tiene el mismo error que usted, ya que el div que estaba tratando de anexar el iframe para no estaba cargado aún cuando estaba tratando de agregar el iframe. Si se carga el div su código funciona:

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body> 
     <div id='test' > 

     </div> 
     <script> 
      var iframe = document.createElement('iframe'); 
      var myDiv = document.getElementById('test'); 
      myDiv.appendChild(iframe); 
      if (iframe.contentDocument) { 
       iframe.contentDocument.write("Hello"); 
      } 
      else if (iframe.contentWindow) { 
       iframe.contentWindow.document.body.innerHTML = "Hello"; 
      } 
     </script> 
    </body> 
</html> 

Aquí es una jsFiddle con este código de trabajo y another con la etiqueta en el que da un error TypeError: Cannot call method 'appendChild' of null.