El problema
Como sabes mediante los IFrames son marcos parecidos a los Frames, pero con la enorme ventaja de poder colocarlos en cualquier parte de tu página !incluso dentro de una tabla! Y lo que es mejor: puedes cambiar su contenido de forma dinámica. La pregunta es evidente ¿Como cambiar lo que se muestra dentro del IFrame?

La solución

Pues la solución es de lo más simple, piensa que un IFrame es una página ¿como cambiar su contenido? pues con la propiedad location. El IFrame muestra la página que asignes a esta propiedad. Así de fácil. En general:

document.frames.nombre.location = url

donde nombre es el id del iframe y url es la página que quieres mostrar en él.


Un caso práctico

Para que veas como funciona esto construye dos páginas, una que se llame hola.htm y otra que se llame adios.htm. La primera contendrá tan solo la frase HOLA MUNDO y la segunda ADIOS MUNDO. Es que nos gusta ser originales. Y ahora viene la aplicación de este truco o miscript: Crea una página con el nombre frames.htm el contenido de este archivo será

<html>
<head>
<title>IFrames dinámicos</title>
<script language="javascript">
function modiframe(destino)
{
document.frames.marco.location=destino
}
</script>
</head>
<body>
<a href="javascript:modiframe('adios.htm')">Cambiar Iframe</a>
<p></p>
<iframe id="marco" width="300" height="400" src="hola.htm">
Este es el IFrame
</iframe>
</body>
</html>

Verás una página con un link que pone Cambiar Iframe y más abajo un marco iFrame con el contenido de la página hola.htm, al pulsar sobre el enlace este contenido cambiará al de la página adios.htm . Más fácil imposible, ¿verdad?