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?
| ||||
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 |
| ||||
Hola No acabo de entender exactamente lo que quieres hacer Cita: ok, enlace1 está en pagina1.htm te abre pagina2.htm pero... ¿en la misma ventana? al cargar pagina2.htm se pierde pagina1.htm?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); Cita: 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?) el enlace2 2 abre la pagina2.htm (pero con otros frames)... |
| ||||
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] |
| ||||
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 |
| ||||
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: 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 |
| |||
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:
Gracias por todo!! <frameset onload="frames[0].location.href='cab' + f + '.htm';frames[1].location.href='det' + f + '.htm' "> |
| ||||
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 |
| |||
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:
FRAMESET.HTML------------------------------<body> <ul> <li><a href="frameset.html?f=1">Enllaç 01</a></li> <li><a href="frameset.html?f=2">Enllaç 02</a></li> </ul> </body>
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 |
| ||||
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] |
| ||||
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 |
| ||||
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? |
| |||
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!! |
| ||||
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. |
| ||||
Cita: ¿puedo verlo en marcha en algún lado? 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!! |
| |||
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 |
| ||||
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] |