Hola,
esto se usa en AJAX para la subida de imagenes y su previsualización, por eso el uso de iframes que tiene que ir cambiando el contenido. En este caso no se porque no funciona la siguiente pagina:
Prueba2.html
Cita: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin título</title>
<STYLE type="text/css">
DIV.update_area1 {border: 1px solid #bbbbbb; font-size: 12pt; width: 400px; height:130px; padding: 5px}
</STYLE>
<script type="text/javascript">
function limpiarDiv(id)
{
var div;
div = document.getElementById(id);
while(div.hasChildNodes()) {
div.removeChild(div.lastChild);
}
}
//Escribir en un div
function rellenarDiv(id)
{
var sethtml = '<iframe name="marco1" id="marco1" width="120" height="130" scrolling="no" frameborder="0" src="prueba2.php"></iframe>';
var div = document.getElementById(id);
//Llamamos a la función limpiarDiv para eliminar el contenido
//actual del div.
limpiarDiv(id);
div.innerHTML = sethtml;
}
function cambiarIframe() {
var sethtml = "Ahora este es el nuevo contenido del iframe";
frames.marco1.document.getElementById('divIframe') .innerHTML = sethtml;
}
</script>
</head>
<body>
<CENTER><div id="update_area1" class="update_area1">
no hay nada<br><br>
</div> <BR><BR>
<input type="button" value="Borrar y cargar div con un iframe" onClick="rellenarDiv('update_area1');"><BR><BR>
<input type="button" value="Cambiar contenido iframe" onClick="cambiarIframe();"><BR><BR>
</CENTER>
</body>
</html>
Y por ultimo, la pagina del iframe: prueba2.php
Cita: <html>
<head>
<title>Ejemplo de código JavaScript en el propio documento</title>
</head>
<body>
<div id="divIframe">
Div dentro del iframe
</div>
</body>
</html>
Ahora explico lo que pasa en firefox: al presionar el boton "borrar y cargar div con un iframe" carga bien prueba2.php. Luego cambio el contenido del iframe que hay dentro de un div con "cambiar contenido iframe", todo bien hasta alli. Nuevamente borro y cargo el contenido del div update_area1 con el primer boton, bien, y nuevamente trato de cambiar el contenido del iframe .... y ya no funciona!!
es decir funciona en un solo intento. El error que me tira el depurador es:
Error: frames.marco1.document is null
Archivo de origen: http://127.0.0.1/prueba2.html
Línea: 31
¿Que esta pasando?, en el Internet Explorer funciona sin errores.
Gracias por ayudar.