Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/09/2010, 02:42
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: problema Iframe

No estoy muy seguro pero vamos a hacer un intento.

Primero lo facil (simplifico el código)

a.html

<html>...
<body>
<a href="c.html" target="contenido">pagina c</a>
<a href="d.html" target="contenido">pagina d</a>
<iframe name="contenido" src="vacio.html"></iframe>
</body>
</html>


puse que el iframe cargue por defecto un archivo en blanco (vacio.html)

ahora, según entiendo lo que necesitas es

b.html
<html>...
<body>
<a href="a.html">cargar c en a</a>
<a href="a.html">cargar d en a</a>
</body>
</html>


Bueno, el lenguaje Klingon de Pirux sirve justamente para eso, yo lo hice en los post que puse como referencia con php, que me resulta mas sencillo, pero el lo hizo con Javascript.
Lo voy a hacer en JS y te lo voy a modificar un poco porque el lo hizo para su página que tiene algunas diferencias.
antes te voy a hacer un agregado, imagina que alguien quiere ir directamente a c.html o d.html, que son contenidos que queres ver solo a traves del iframe, para prevenir que te salteen el marco en c.html tenes que poner en el head

<script type="text/javascript">
if (self.location == top.location)
top.location.href = 'a.html?archivo=c';
</script>


y en d.html


<script type="text/javascript">
if (self.location == top.location)
top.location.href = 'a.html?archivo=d';
</script>


ahora vayamos a a.html, esta es la script


Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. //<![CDATA[
  3. function obtenerVariable(variable) {
  4.   var query = window.location.search.substring(1);
  5.   var vars = query.split("&amp;");
  6.   for (var i=0;i<vars.length;i++) {
  7.     var pair = vars[i].split("=");
  8.     if (pair[0] == variable) {
  9.       return pair[1];
  10.     }
  11.   }
  12.  
  13. }
  14.  
  15. function carga(){
  16. pag = obtenerVariable('archivo');
  17. if (pag == null){
  18. pag = 'vacio';
  19. }
  20. parent.frames['contenido'].location.href= pag + '.html';
  21. }
  22. //]]>
  23. </script>

y en el body de a.html

<body onload="carga();">

La clave de todo es en pasarle parámetros a a.html para que sepa que cargar. la script analiza la cadena (QueryString) con los parámetros en la url, toma el valor de la variable "archivo" y construye el nombre del documento que se va a cargar en el iframe "contenido"
entonces en b.html tendrias que usar

<p>Página B</p>
<p><a href="a.html?archivo=c">cargar c en iframe contenido en página A</a></p>
<p><a href="a.html?archivo=d">cargar d en iframe contenido en página A</a></p>
<p><a href="a.html">cargar A con valor por defecto vacio.html</a></p>


Pero que mejor que una demo para que lo verifiques

http://foros.emprear.com/html/query/

intenta tambien ir directamente a c o d para ver lo del agregado que te mencione al principio

Espero quete sirva
saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.