style que iframes contentdocument content javascript iframe innerhtml

javascript - que - js iframe contentdocument



establecer innerHTML de un iframe (4)

Al mejorar mis archivos cargados en un entorno AJAXS, tuve la misma necesidad. Esto funcionó para mí en ie8 y ff 22.0. Tanto el innerhtml body como el div innerhtml funcionan.

function copyframedata(data) { var x = document.getElementById("photo_mgr_frame"); var y = x.contentWindow || x.contentDocument; if (y.document) y = y.document; y.getElementById(''photo_mgr_mb'').innerHTML = data; }

lo obtuve de w3

En javascript, ¿cómo puedo configurar el innerHTML de un iframe? Quiero decir: cómo establecer, no get .

window["ifrm_name"].document.innerHTML= "<h1>Hi</h1>" no funciona, y lo mismo para otras soluciones.

Iframe y el documento principal están en el mismo dominio.

Tendría que establecer html de todo el documento iframe, no su cuerpo.

Necesitaría evitar la solución de jquery.


En Firefox y Chrome (no sé sobre Opera), puede usar los datos: esquema de URI .

<iframe src=".... data: URI data here ......">

Ejemplo JSFiddle

Here hay una herramienta para generar datos: datos codificados URI.

Esto no funciona en IE :

Por razones de seguridad, los URI de datos están restringidos a los recursos descargados. Los URI de datos no se pueden usar para navegación, scripts ni para llenar elementos frame o iframe.

Sin embargo, como dices en el comentario, obtener / configurar el cuerpo del documento es suficiente, es mucho más fácil utilizar uno de los ejemplos vinculados.


También está el atributo srcdoc :

<iframe srcdoc="<p><h1>Hello</h1> world</p>"></iframe>

Demo , Polyfill .


Un ejemplo realmente simple ...

<iframe id="fred" width="200" height="200"></iframe>

luego se ejecuta el siguiente Javascript, ya sea en línea, como parte de un evento, etc.

var s = document.getElementById(''fred''); s.contentDocument.write("fred rules");

el "contentDocument" es el equivalente del "documento" que obtienes en la ventana principal, por lo que puedes hacer llamadas en contra de esto para establecer el cuerpo, la cabeza, cualquier elemento dentro ... etc.

Solo he probado esto en IE8, Chrome y Firefox ... por lo que es posible que desee probar en IE6 / 7 si tiene copias disponibles.