Foros del Web » Programando para Internet » Javascript »

Cargar frames con paso de variables de una pagina a otra

Estas en el tema de Cargar frames con paso de variables de una pagina a otra en el foro de Javascript en Foros del Web. Hola a Todos: Tengo dos paginas, origen(pagina-origen.) y index2(pagina-destino) La pagina index2(pagina-destino) tiene 4 frames(leftFrame, topFrame, mainFrame, rightFrame) Desde la pagina origen llamo a index2 ...
  #1 (permalink)  
Antiguo 23/01/2004, 09:42
 
Fecha de Ingreso: diciembre-2003
Ubicación: Huancayo
Mensajes: 10
Antigüedad: 20 años, 11 meses
Puntos: 0
Cargar frames con paso de variables de una pagina a otra

Hola a Todos:

Tengo dos paginas,
origen(pagina-origen.) y index2(pagina-destino)
La pagina index2(pagina-destino) tiene 4 frames(leftFrame, topFrame, mainFrame, rightFrame)

Desde la pagina origen llamo a index2 de la siguiente manera:
<a href="index2.htm?codpag=1">link1</a><br>
<a href="index2.htm?codpag=2">link2</a><br>
<a href="index2.htm?codpag=3">link3</a><br>

Con lo que le envio una variable


En la pagina destino Index2.htm uso el siguiente script:
********
********

<script language="JavaScript">
cadVariables = location.search.substring(1,location.search.length );
arrVariables = cadVariables.split("&");
for (i=0; i<arrVariables.length; i++) {
arrVariableActual = arrVariables[i].split("=");
if (isNaN(parseFloat(arrVariableActual[1])))
eval(arrVariableActual[0]+"='"+unescape(arrVariableActual[1])+"';");
else
eval(arrVariableActual[0]+"="+arrVariableActual[1]+";");
}
switch(codpag) {
case 1:
top.frame['mainFrame'].location.href="ceninv.htm";
break;
case 2:
top.frame['mainFrame'].location.href="cenpre.htm";
break;
case 3:
top.frame['mainFrame'].location.href="inab.htm";
break;
}
</script>

ADEMAS, los frames estan declarados en esta misma pagina de la siguiente manera:

<frameset cols="*,798,*" frameborder="NO" border="0">
<frame src="aa_ext_izq.htm" name="leftFrame" scrolling="NO">
<frameset rows="110,*" frameborder="NO" border="0">
<frame src="aa_med_top.htm" name="topFrame" scrolling="NO" noresize >
<frame src="" name="mainFrame">
</frameset>
<frame src="aa_ext_der.htm" name="rightFrame" scrolling="NO">
</frameset>


********
********
Con lo que busco que el frame "mainFrame" cargue una pagina segun la variable que le envio:
para codpag=1 cargar ceninv.htm
para codpag=2 cargar cenpre.htm
para codpag=3 cargar inab.htm




El resultado que tengo es:
Se carga la pagina Index2.htm, pero el frame "mainFrame" aparece en blanco, he probado de muchas

maneras y no corre.

Me estoy iniciando en el diseño de páginas web, por favor ayudenme.

muchas gracias por tu atención. Un saludo
MUCHAS GRACIAS (22 de enero 2004)

  #2 (permalink)  
Antiguo 23/01/2004, 10:58
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola fisito1901, bienvenido a los foros :

Por lo que veo, "mainframe" no es "hijo" de top, sino de top.leftFrame ...

O sea que en el switch tendrías que poner algo así:

switch(codpag) {
case 1:
top.leftFrame.mainFrame.location.href="ceninv.htm" ;
break;
case 2:
top.lefrFrame['mainFrame'].location.href="cenpre.htm";
break;
case 3:
top.leftFrame['mainFrame'].location.href="inab.htm";
break;
}

También te valdría:
top.leftFrame.mainFrame.src = la_página_que_sea;

Espero que te sirva

Saludos
  #3 (permalink)  
Antiguo 24/01/2004, 08:37
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 2 meses
Puntos: 381
Mensaje Nos vamos al foro de javascript

movido desde html

saludos
  #4 (permalink)  
Antiguo 24/01/2004, 13:46
 
Fecha de Ingreso: diciembre-2003
Ubicación: Huancayo
Mensajes: 10
Antigüedad: 20 años, 11 meses
Puntos: 0
Caricatos, muchas gracias por la ayuda, lo he intentado cmo veras abajo, de las tres formas q me recomendaste pero no funciona. Te escribo para ver si encuentras algun error el script

********
********
<script language="JavaScript">
cadVariables = location.search.substring(1,location.search.length );
arrVariables = cadVariables.split("&");
for (i=0; i<arrVariables.length; i++) {
arrVariableActual = arrVariables[i].split("=");
if (isNaN(parseFloat(arrVariableActual[1])))
eval(arrVariableActual[0]+"='"+unescape(arrVariableActual[1])+"';");
else
eval(arrVariableActual[0]+"="+arrVariableActual[1]+";");
}
switch(codpag) {
case 1:
top.leftFrame.mainFrame.location.href="ceninv.htm" ;
break;
case 2:
top.leftFrame['mainFrame'].location.href="cenpre.htm";
break;
case 3:
top.leftFrame.mainFrame.src ="inab.htm";
break;
}

</script>

********
********


Muchas gracias de antemano Caricatos
  #5 (permalink)  
Antiguo 24/01/2004, 13:50
 
Fecha de Ingreso: diciembre-2003
Ubicación: Huancayo
Mensajes: 10
Antigüedad: 20 años, 11 meses
Puntos: 0
Amigo Caricatos, me olvidaba , el error que arroja es:
*****
'top.leftFrame.mainFrame' es nulo o no es un objeto
*****


Gracias por todo.
  #6 (permalink)  
Antiguo 24/01/2004, 17:19
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola otra vez:

Estuve haciendo pruebas, y parece que me he equivocado.

Lo de leftFrame tienes que quitarlo...

top.mainFrame.location.href = la_página;

Saludos
  #7 (permalink)  
Antiguo 25/01/2004, 12:39
 
Fecha de Ingreso: diciembre-2003
Ubicación: Huancayo
Mensajes: 10
Antigüedad: 20 años, 11 meses
Puntos: 0
no sale

Hola Caricatos
he intentado y no sale mira las hojas de prueba estan en:
http://www.adesaperu.com/prueba/origen.htm

y sai deseas probar en tu ordenador te envio las carpeta zipeada n:
http://www.adesaperu.com/prueba/pruebaframes.zip

ayudame amigo caricato estoy en esto y me vuelvo loco gracias por todo de antemano

Carlos.
  #8 (permalink)  
Antiguo 25/01/2004, 14:36
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola, fisito1901.

Cojo, momentaneamente, el relevo de caricatos (¡Hola! )

Yo creo que el problema es que se ejecuta el código JavaScript antes de definir los marcos. Es decir: cuando pones top.mainFrame.location.href = la_página; el frame mainFrame todavía no existe y por eso te da error.

Intenta poner el código dentro de una función:

function cargar() {
//Aquí pones todo el código
}

Y la llamas después de que se creen los marcos.

Espero que te funcione. Saludos,

Última edición por JavierB; 25/01/2004 a las 14:37
  #9 (permalink)  
Antiguo 25/01/2004, 15:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola a todos:

JavierB: creo que estás en lo cierto...
... Para asignar después de la creación de los marcos se puede usar el evento onload... lo probé en el 1º frameset y funciona (antes lo había probado en el mismo marco "mainFrame" y tuve que cerrar la ventana porque entró en un bucle infinito (tal vez me equivoqué en otra cosa)...

La página index2.htm me quedó así:

Código PHP:
<html>
<
head>
<
title>...:: Universidad Continental de Ciencias e Ingeniería ::...</title>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<
script language="JavaScript">
function 
sitio()    {
  
cadVariables location.search.substring(1,location.search.length); 
  
arrVariables cadVariables.split("&");  
  for (
i=0i<arrVariables.lengthi++) {
    
arrVariableActual arrVariables[i].split("=");
    if (
isNaN(parseFloat(arrVariableActual[1])))
      eval(
arrVariableActual[0]+"='"+unescape(arrVariableActual[1])+"';");
    else
      eval(
arrVariableActual[0]+"="+arrVariableActual[1]+";");
  }
    switch(
codpag) {
    case 
1:
    return 
"ceninv.htm";
        break;
    case 
2:
    return 
"cenpre.htm";
        break;
    case 
3:
    return 
"inab.htm";
        break;
    }
    
otherwise:
        return 
"mainFrame.htm";
    
}

</script>

</head>

<frameset cols="*,700,*" frameborder="NO" border="0" onload="mainFrame.location.href = sitio()">
  <frame src="leftFrame.htm" name="leftFrame" scrolling="NO">
    <frameset rows="110,*" frameborder="NO" border="0">
      <frame src="topFrame.htm" name="topFrame" scrolling="NO" noresize >
      <frame src="mainFrame.htm" name="mainFrame" >
    </frameset>
  <frame src="rightFrame.htm" name="rightFrame" scrolling="NO">  
</frameset>
<noframes><body>

</body></noframes>
</html> 
Saludos
  #10 (permalink)  
Antiguo 26/01/2004, 11:02
 
Fecha de Ingreso: diciembre-2003
Ubicación: Huancayo
Mensajes: 10
Antigüedad: 20 años, 11 meses
Puntos: 0
Caricatos y JavierB gracias , muchas gracias, remuchas gracias por la atencion prestada, ya solucione mi problemas gracias a ustedes. Yo les quedo muy agradecido.

el 18 de Octubre Peru y España juegan un amistoso, gracias por todo pero de seguro les ganamos 2 a 0. Bueno fiuera de bromas, gracias por todo Caricatos y JavierB.
Muchas gracias.

Carlos

Arriba Peru
Campeon Mundial Alemania 2006
  #11 (permalink)  
Antiguo 26/01/2004, 13:55
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola de nuevo.

Me alegro de que lo hayas solucionado, pero esta vez creo que la muesca debe marcarla caricatos (¡Hola! )

El 18 de octubre queda un poco lejos, pero intentaré acordarme para ver como ganamos nosotros, aunque no se todavía el resultado.

Saludos,
  #12 (permalink)  
Antiguo 26/01/2004, 17:04
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola otra vez:

Tal vez nos podrías mandar unos billetes de avión y unas entradas para ver el partido...

Ya mi winchester se está quedando sin espacio para más marcas.
Tal vez KarlanKas conozca un arma gaminediana que tenga más espacio, o tenga que hacer marcas con algún rayo láser...

Lo importante es que se van solucionando los problemas

Saludos
  #13 (permalink)  
Antiguo 26/01/2004, 17:09
 
Fecha de Ingreso: diciembre-2003
Ubicación: Huancayo
Mensajes: 10
Antigüedad: 20 años, 11 meses
Puntos: 0
Caricatos y JavierB, gracias a los dos y gracias por respoder a las bromas, el partido se jugara en madrid, y que gane el que ese dia juegue mejor (Perú).
Caricatos que siginifica:
Ya mi winchester se está quedando sin espacio para más marcas.
No entiendo.

Se que algun dia visitare su linda tierra.
  #14 (permalink)  
Antiguo 26/01/2004, 17:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola otra vez:

Lo del winchester y las marcas es que tanto JavierB como yo, al responder bien un mensaje hacemos como en las pelis de pistoleros (eso de poner una muesca)

Bueno, siendo en Madrid, me parece que a JavierB le puede tocar verlo, ya que a mi me queda un poco lejos.

Saludos
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 19:29.