style iframes contentdocument content javascript jquery iframe

javascript - iframes - Establecer iframe innerHTML sin cargar página en él(con jquery)



javascript get document in iframe (3)

Quiero establecer los contenidos de un iframe dinámicamente, cuando no se cargaron páginas antes en el iframe.

Estoy haciendo eso

iframe = $(''<iframe id="thepage"></iframe>''); iframeHtml = ''iframeHtml''; $(''body'').append(iframe); iframe .contents() .html(iframeHtml);

Pero no está funcionando, el html todavía está vacío.


la mejor manera de poblar el contenido del marco es document.write

var dstFrame = document.getElementById(''yourFrameId''); var dstDoc = dstFrame.contentDocument || dstFrame.contentWindow.document; dstDoc.write(yourHTML); dstDoc.close()

UPD: eso es

var iFrame = $(''<iframe id="thepage"></iframe>''); $(''body'').append(iFrame); var iFrameDoc = iFrame[0].contentDocument || iFrame[0].contentWindow.document; iFrameDoc.write(''<p>Some useful html</p>''); iFrameDoc.close();


Si desea evitar el uso de document.write , que en general ya no se recomienda, puede obtener los contenidos del marco para agregar el contenido:

iframe = $(''<iframe id="thepage"></iframe>'') iframeHtml = ''iframeHtml'' $(''body'').append(iframe) iframe.contents().find(''body'').html(iframeHtml)


iframe = $(''<iframe id="thepage"></iframe>''); iframeHtml = ''iframeHtml''; $(''body'').append(iframe); iframe .contents() .html(iframeHtml);

la razón por la que no funciona es porque contents() devuelve un objeto de document y html() solo funciona en objetos HTMLElemnt , html() es básicamente un contenedor alrededor de la propiedad innerHTML y el document no tiene dicha propiedad.