Foros del Web » Programando para Internet » Javascript »

Enlace abre ventana con 2 frames (de otra página)

Estas en el tema de Enlace abre ventana con 2 frames (de otra página) en el foro de Javascript en Foros del Web. Tengo un enlace en la pagina1.htm y al hacer en un click en enlace1 quiero que me abra pagina2.htm (q tiene 2 frames); el enlace2 ...
  #1 (permalink)  
Antiguo 26/09/2003, 10:52
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 20 años, 8 meses
Puntos: 1
Pregunta Enlace abre ventana con 2 frames (de otra página)

Tengo un enlace en la pagina1.htm y al hacer en un click en enlace1 quiero que me abra pagina2.htm (q tiene 2 frames);
el enlace2 2 abre la pagina2.htm (pero con otros frames)...
como puedo hacer esto?
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #2 (permalink)  
Antiguo 26/09/2003, 11:09
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola acervantes:

Creo que siempre que exista un "parentezco" puedes hacerlo...

Si la abres como popup:
var ventana = "window.open('pagina2.htm', '', '')"
ventana.document.frames[0].src = "frame0.html";
ventana.document.frames[1].src = "frame1.html";

creo que también puedes usar en vez de src location.href...

Saludos
  #3 (permalink)  
Antiguo 26/09/2003, 16:01
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 20 años, 8 meses
Puntos: 1
no soluciona lo que necesito, alguien puede ayudarme????? tunait please.........
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #4 (permalink)  
Antiguo 26/09/2003, 16:10
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Hola

No acabo de entender exactamente lo que quieres hacer
Cita:
Tengo un enlace en la pagina1.htm y al hacer en un click en enlace1 quiero que me abra pagina2.htm (q tiene 2 frames);
ok, enlace1 está en pagina1.htm te abre pagina2.htm pero... ¿en la misma ventana? al cargar pagina2.htm se pierde pagina1.htm?
Cita:
el enlace2 2 abre la pagina2.htm (pero con otros frames)...
ok, enlace2 está en pagina1.htm y ha de abrir pagina2.htm pero el contenido cargado en los frames ha de ser distinto de los que están definidos originalmente en pagina2.htm ¿es así? ¿dónde se abre? (en ventana nueva?)
  #5 (permalink)  
Antiguo 26/09/2003, 16:21
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 20 años, 8 meses
Puntos: 1
Me explico; (todo ocurre en la misma ventana). Primeramente tengo una página de nombre UNO.HTM; ésta a su vez tiene enlaces que abrirarán otra página de nombre DOS.HTM (ésta es un framset de frames verticales - cabecera y detalle).
Es decir, que cuando active un enlace de UNO.HTM ésta abrirá la página DOS.HTM (en la misma ventana).
Los enlaces deben tener los siguientes efectos:
- enlace1...-> en DOS.HTM debe abrir CAB1.HTM y DET1.HTM (en los 2 frames no?)
- enlace2...-> en DOS.HTM debe abrir CAB2.HTM y DET2.HTM
- enlace2...-> en DOS.HTM debe abrir CAB3.HTM y DET3.HTM
espero que esta vez haya quedado claro, sino es cierto lo que estoy deduciendo: estoy enloqueciendo.

gracias por la ayuda....
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #6 (permalink)  
Antiguo 26/09/2003, 16:25
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Ah, ahora sí

te preparo un ejemplo y te lo pongo
  #7 (permalink)  
Antiguo 26/09/2003, 17:02
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
A ver si algo así te sirve.

A los enlaces les añades esto:

<p><a href="dos.htm?f=1">enlace1</a></p>
<p><a href="dos.htm?f=2">enlace2</a></p>
<p><a href="dos.htm?f=3">enlace3 </a></p>

y luego colocas esto en <head> de tu página de frames

<script language="JavaScript">
f = location.search.substr(1).split('=')[1]
</script>

</head>

Y a tu frameset le pones lo siguiente

<frameset onload="frames[0].location.href='cab' + f + '.htm';frames[1].location.href='det' + f + '.htm' ">

No es perfecto pero cumple su cometido

Última edición por tunait; 27/09/2003 a las 10:19
  #8 (permalink)  
Antiguo 27/09/2003, 04:15
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Como te comente en privado, yo también te he preparado un código que pongo a continuación:

Código PHP:
<html>
<
head>
<
script language=javascript>
var 
ventana;
function 
salto()    {
    
ventana.document.frames[1].location.href "../mapas/index.html";
}

function 
abrir()    {
    
ventana window.open('prueba126.html''''');
    
setTimeout("salto()"3000);
}
</script>
<title>
    Frames
</title>
</head>
<body>
<a href="javascript:abrir()">abrir marcos</a>

</body>
</html> 
Puse un retardo para que se note el efecto, pero en tu caso no creo que sea necesario (aunque puede ser interesante)
En este caso modifica el segundo frame del conjunto, pero con los índices se puede modificar cualquiera.

Puedes ver el ejemplo en esta página de prueba: http://www.pepemolina.com/pruebas/prueba134.html

También parece interesante el ejemplo de tunait (¡Hola! )

Saludos
  #9 (permalink)  
Antiguo 27/09/2003, 06:54
 
Fecha de Ingreso: mayo-2002
Mensajes: 72
Antigüedad: 21 años, 11 meses
Puntos: 0
Hola,

Hace un par de dias postée una pregunta similar pero no obtuve respuesta.

En el ejemplo que propones, Tunait, supongo que se deben pasar los valores de los links de la pagina UNO.HTM a través de la URL.

Puedes (o alguien puede), comentar como? No tengo experiéncia en JavaScript, y voy un poco perdido.

Y tambien si no es mucho pedir, alguien puede comentar a que hace referencia el texto en rojo del siguiente código:

Código:
<frameset onload="frames[0].location.href='cab' + f + '.htm';frames[1].location.href='det' + f + '.htm' ">
Gracias por todo!!
  #10 (permalink)  
Antiguo 27/09/2003, 10:17
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Hola, claro yá te explico,

mira lo que está en rojo no es más que el principio del nombre de archivo que se ha de cargar.

En este caso se ha de cargar cab1.htm y det1.htm, o bien cab2.htm y det2.htm o en el tercer caso será cab3.htm y det3.htm.

Veo que ayer omití poner algo, ahora lo corrijo. Efectivamente se pasa por url el dato necesario. En el ejemplo con el que he probado envío simplemente el número 1, 2 ó 3 y eso es lo que se recoge de la url y se guarda en la variable f. Luego simplemente concateno f para formar el nombre de archivo necesario.

El mismo script puede servirte para lo que preguntaste el otro día que, efectivamente, es prácticamente lo mismo.
En tu caso en vez de enviar 1, 2 ó 3 por url deberías pasar a, b ó c y concatenarlo.


En todo caso ahora te dejo un ejemplo en el post donde preguntaste
  #11 (permalink)  
Antiguo 27/09/2003, 11:17
 
Fecha de Ingreso: mayo-2002
Mensajes: 72
Antigüedad: 21 años, 11 meses
Puntos: 0
gracias....!

lo que me comentas, Tunait, lo acabé deduciendo después de volverme un poco loco. (y mirando un poco un manual de JavaScript) .

pero el problema esta en que creo que no me pasa la variable a traves de la URL o que luego no se recoje bien, ya que al llegar al frameset.html no aparece nada.

Pego el código aver si lo podemos comentar:

INDEX.HTML------------------------------
Código:
<body>

<ul>
	<li><a href="frameset.html?f=1">Enlla&ccedil; 01</a></li>
	<li><a href="frameset.html?f=2">Enlla&ccedil; 02</a></li>

</ul>

</body>
FRAMESET.HTML------------------------------



Código:
<head>
<title>Frameset</title>
	
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
f=location.search.substr(1).split('=')[1]
 //-->
</SCRIPT> 


</head>

<body>

<frameset onload="frames[0].location.href='men' + f + '.html';
frames[1].location.href='content' + f + '.html';
frames[2].location.href='detall' + f + '.html' ">


</body>

Última edición por Orkua; 27/09/2003 a las 11:19
  #12 (permalink)  
Antiguo 27/09/2003, 11:52
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 20 años, 8 meses
Puntos: 1
muchas gracias tunait y caricatos; en realidad gracias por el tiempo empleado, pero estoy seguro que a muchos nos servirá de ayuda, ahora prometo probar las 2 soluciones de uds. y tratar de hacer una 3ra (ojalá y pueda) para que tengamos las 3 soluciones aplicables....
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #13 (permalink)  
Antiguo 27/09/2003, 12:03
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Esta mañana vi una respuesta de Carlitos (¡Hola! ) a otro tema, que usa en vez de location.href, location.replace y creo que es más adecuada.
Lo acabo de probar en mi versión y no dudo de que funcione igual en la versión de tunait...

ventana.document.frames[1].location.replace("destino.html");

Saludos
  #14 (permalink)  
Antiguo 27/09/2003, 12:05
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Muchas de nadas, acervantes, a ver si al menos te soluciona el tema


Orkua, yo veo bien el código que has puesto. Lo único es que veo que la línea del onload en el frameset está en 3 líneas. ¿En tu página lo tienes también en 3 líneas?
  #15 (permalink)  
Antiguo 27/09/2003, 12:08
 
Fecha de Ingreso: mayo-2002
Mensajes: 72
Antigüedad: 21 años, 11 meses
Puntos: 0
No, Tunait.
Lo tengo solo en un linea. Lo puse en 3 en el post para que fuera mas legible.

Ahora consigo recibir la variable, pero no me carga los htmls en los frames....

Gracias por todo!!
  #16 (permalink)  
Antiguo 27/09/2003, 12:10
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Hola Caricatos

Mira, href y replace() dan el mismo resultado en este caso. Sólo que href es más antiguo (funciona a partir de IE3 y NS2) y replace() llegó más tarde y funciona a partir de IE4 y NS3.

  #17 (permalink)  
Antiguo 27/09/2003, 12:11
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Cita:
Mensaje Original por Orkua
No, Tunait.
Lo tengo solo en un linea. Lo puse en 3 en el post para que fuera mas legible.

Ahora consigo recibir la variable, pero no me carga los htmls en los frames....

Gracias por todo!!
¿puedo verlo en marcha en algún lado?
  #18 (permalink)  
Antiguo 27/09/2003, 16:20
 
Fecha de Ingreso: mayo-2002
Mensajes: 72
Antigüedad: 21 años, 11 meses
Puntos: 0
De acuerdo SCRIPT COMPLETO

Hola a tod@s!

Dejo aquí el script entero por si alguien lo necesita.

INDEX.HTML------------------------------
<body>
<ul>
<li><a href="frameset.html?f=1 ">Enlace 01</a></li>
<li><a href="frameset.html?f=2 ">Enlace 02</a></li>

</ul>

</body>

FRAMESET.HTML------------------------------
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
var f=location.search.substr(1).split('=')[1]

//-->
</SCRIPT>

</head>

<frameset cols="100,*" >
<frame name="izquierda" src="">
<frameset rows="100,*" onload="frames[0].location.href='men' + f + '.html ';frames[1].location.href='content' + f + '.html ';frames[2].location.href='detall' + f + '.html ' ">
<frame name="arriba" src="">
<frame name="principal" src="">
</frameset>


Si alguien no entiende bien el codigo, que se fije en la relación con los colores rojo, verde y naranja que he puesto a lo largo del scrip. Creo que podrán ayudar a entender la relación entre las partes del código.

Nombre de los archivos a cargar para Enlace 01:
men1.html
content1.html
detall1.html

Nombre de los archivos a cargar para Enlace 02:
men2.html
content2.html
detall2.html


Si alguien tiene dudas, que repase todos los posts (o que comente el problema !) que seguro encuentra la solución.

Y agradecer a Tunait su valiosa ayuda!

Hasta pronto
  #19 (permalink)  
Antiguo 01/10/2003, 10:04
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 20 años, 8 meses
Puntos: 1
Bueno aquí tengo la solución que le día (claro que los créditos van para Tunait y Caricatos)
en el <head> de la página de frameset puse lo siguiente:
----------------
<script languaje="javascript">
<!--
cab=location.search.substr(1).split('=')[1]
det=location.search.substr(1).split('=')[2]
if (typeof cab=="undefined")
cab="mpa_tupa_cab.htm"
if (typeof det=="undefined")
det="tupa2002b.htm"
//-->
</script>
--------------
(son los dos parámetros que vienen de otra página, notar que si se abre directamente la página se aperturan los frames con las páginas "mpa_tupa_cab.htm" y "tupa2002b.htm".
Por otro lado, luego de </head> puse:
--------------
<frameset rows="122,*" cols="*" framespacing="0" frameborder="NO" border="0" onLoad="frames[0].location.href=''+cab;frames[1].location.href=''+det">
---------------
funciona a la perfección gracias por la ayuda.....
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #20 (permalink)  
Antiguo 04/11/2003, 11:12
 
Fecha de Ingreso: noviembre-2003
Mensajes: 1
Antigüedad: 20 años, 5 meses
Puntos: 0
Alguien sabe como se podría hacer esto mismo de abrir 2 pàginas con frames, pero sin utilizar frames solo con tablas. Se puede hacer o hay alguna solución.
Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:48.