Foros del Web » Programando para Internet » Javascript »

Enviar una variable de un frame a otro.

Estas en el tema de Enviar una variable de un frame a otro. en el foro de Javascript en Foros del Web. Buenas. ¿Podríais decirme, por favor, cómo se puede enviar una variable desde un frame html y que otro frame distinto lo reciba?. Muchas gracias....
  #1 (permalink)  
Antiguo 11/05/2003, 16:17
 
Fecha de Ingreso: mayo-2003
Mensajes: 22
Antigüedad: 21 años
Puntos: 0
Enviar una variable de un frame a otro.

Buenas. ¿Podríais decirme, por favor, cómo se puede enviar una variable desde un frame html y que otro frame distinto lo reciba?.
Muchas gracias.
  #2 (permalink)  
Antiguo 15/05/2003, 23:26
Avatar de TurKa  
Fecha de Ingreso: enero-2003
Ubicación: Gerli, Avellaneda
Mensajes: 543
Antigüedad: 21 años, 3 meses
Puntos: 4
Ejemplo:

página del frame1:
......
<a href="pagina2.htm?variable1=tal cosa&variable2=tal otra" target="frame2">texto</a>
......

página2.htm (del frame 2)
......

<script languaje="javascript">
function getParam() {
var enlace = document.URL.indexOf('?');
var parametros = new Array();
if (enlace != -1) {
var pairs = document.URL.substring(enlace+1, document.URL.length).split('&');
for (var i=0; i<pairs.length; i++) {
nameVal = pairs[i].split('=');
parametros[nameVal[0]] = nameVal[1];
}
}
return parametros;
}
parametros = getParam();
</script>
......
.....
<script languaje="javascript">
variable1 = unescape(parametros["variable1"]);
variable2 = unescape(parametros["variable2"]);
document.write("variable1: " + variable1 + "variable2: " + variable2);
</script>

¿Era esto lo que buscabas? Sino, vuelve a preguntar.
Suerte!!
__________________
Programación LAMP con Scrum y XP
www.eugeniabahit.com.com.ar
  #3 (permalink)  
Antiguo 16/05/2003, 02:46
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 22 años, 2 meses
Puntos: 0
alternativa a GET

hola,

otra forma (ni mejor ni peor ya que las opciones por ahí dependen de otras cosas del sitio...) podría ser usar window.parent... Esta propiedad de window apuntaría al "frameset". O sea, tenes un frameset con tantos frames; estos frames tienen un nombre. Supongamos que son 2 y que se llaman 'frame1' y 'frame2'.

Suponiendo que queres agarrar una variable 'varRemota' que esté definida en el frame1, en un script dentro del frame2, se puede hacer:

Código PHP:
if ( window.parent'frame1' ] ) {
var 
Local window.parent'frame1' ].varRemota;

El valor de Local será el que en el momento tenga varRemota del frame1 (el 'window' antes de 'parent' puede ser obviado). Para usar directamente la variable del otro frame sin asignarla a otra se puede hacer window.parent[ 'frame1' ].varRemota. El condicional de arriba es solamente para asegurarse de que no haya errores (de que el MSIE no te tire error por las dudas). Tirará error si no hay un frame llamado 'frame1' en el frameset, o si el script no puede acceder a ese frame por alguna causa imprevisible...

Lo mismo puede hacerse con las funciones. Si en 'frame1' hay una función hacerAlgo(numero), desde el frame2 puede llamarse:

Código PHP:
if ( window.parent'frame1' ] ) {
window.parent'frame1' ].hacerAlgo(3);

saludos
__________________
webdeveloper
http://www.javascripters.com.ar/
diseño web y tecnología
  #4 (permalink)  
Antiguo 16/05/2003, 02:55
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Que tal,


si lo que quieres es enviar el valor de una variable a otro frame sin cambiar de página basta con que referencies a dónde hay que asignar ese valor.

Si en tu frame B tienes una variable llamada pepe y quieres asignarle o cambiarle un valor desde el frame A puedes pedirle frameB.pepe="hola" (suponiendo que tu frame B lleve por nombre frameB)

O si quieres asignarle un valor a un campo de texto en el frame B sería parent.frameB.document.nombreDelForm.nombreDelCamp o.value = "valor"

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 01:48.