Foros del Web » Programando para Internet » Javascript »

Problema al cambiar atributo location de un frame

Estas en el tema de Problema al cambiar atributo location de un frame en el foro de Javascript en Foros del Web. Hola. Tengo una página con varios frames, uno de los cuales tengo que hacer que presente una url distinta a la que tiene cuando se ...
  #1 (permalink)  
Antiguo 10/01/2008, 17:02
 
Fecha de Ingreso: diciembre-2007
Mensajes: 7
Antigüedad: 17 años
Puntos: 0
Problema al cambiar atributo location de un frame

Hola.
Tengo una página con varios frames, uno de los cuales tengo que hacer que presente una url distinta a la que tiene cuando se pulsa en un link del mismo, para hacerlo, la propiedad onClick() del link llama a un método en javascript que ejecuta la instrucción
top.frames["urlActual"].location = "urlSiguiente"; (1)

urlSiguiente es una página con un formulario, cuyos inputs tengo que rellenar con unos valores que le envío. El problema es que, aunque location pasa a urlSiguiente (lo cambio con la instrucción anterior, o eso no afecta a document?), cuando hago

document.getElementById("elemento") (2)

a un elemento de la nueva url que estoy mostrando, me dice

"Error: document.getElementById("nombre") has no properties"

vamos, que no encuentra el elemento.

He hecho una chapuza para que funcione, y es que si pongo un alert entre medias de (1) y (2), sí que encuentra el elemento, por lo que al principio creía que sería porque no le da tiempo al navegador a cambiar la url antes de ejecutar (2), pero al probar introduciendo un tiempo de espera, sigue sin funcionar.

Alguien sabe o tiene idea de por qué puede ser que no funcione o cómo podría solucionarlo?

Gracias.
  #2 (permalink)  
Antiguo 10/01/2008, 17:08
 
Fecha de Ingreso: diciembre-2007
Mensajes: 7
Antigüedad: 17 años
Puntos: 0
Re: Problema al cambiar atributo location de un frame

Perdón, antes en (1) quería poner

top.frames["frame"].location = "urlSiguiente";

y no

top.frames["urlActual"].location = "urlSiguiente";

Última edición por Eldhelrim; 10/01/2008 a las 17:15
  #3 (permalink)  
Antiguo 11/01/2008, 00:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 9 meses
Puntos: 1284
Re: Problema al cambiar atributo location de un frame

Hola:

Si quieres cambiar de página deberías usar simplemente un link con el destino puesto en su target:
<a href="urlSiguiente" target="frame" ...

Sobre las asignaciones, seguro que se trata de que no se carga... la temporización la podrías poner con setTimeout, pero también puedes activar el evento load del frame
<frame src="loQueSea" onload="procesarDatos()"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 11/01/2008, 02:24
 
Fecha de Ingreso: diciembre-2007
Mensajes: 7
Antigüedad: 17 años
Puntos: 0
Re: Problema al cambiar atributo location de un frame

Gracias por la ayuda, estoy intentándolo con el evento onload, aunque de momento no lo consigo.

El problema es que la url a la que tengo que acceder es un formulario, cuyos campos tengo que rellenar unos valores que me vienen dados desde otra url (la que está cargada en el frame justo antes de ella), con lo cual cada vez son diferentes, pongo el enlace que tengo puesto para ver si me explico mejor:

<b onClick=\"actualizaFrame('editar.php');editarCentr o('"+sCentro+"')\"> Editar </b>

En la función actualizaFrame(), actualizo el valor location del frame a la url con el formulario que quiero rellenar, y en la función editarCentro relleno los campos del formulario. Los datos que necesito van en la variable sCentro, que parseo dentro de editarCentro, pero cuando intento acceder a los elementos del formulario que se supone que deberían estar ya porque los he cargado en actualizaFrame(), me saca el mensaje de error de antes (lo de que no lo encuentra).

Por si sirve de algo, en IE ni siquiera me los rellena con la "chapuza" de poner un alert entre medias, aunque el error que da sigue siendo el mismo.

Lo que no consigo entender, es cómo, si el frame se actualiza a la url que le digo, ¿por qué no encuentra los elementos que hay en él? Si fuese porque cuando el navegador intenta acceder a los elementos de la url, ésta no se ha terminado de cargar todavía, con introducir un timeOut sería suficiente, pero aún así tampoco funciona...

Muchas gracias.

Última edición por Eldhelrim; 11/01/2008 a las 02:35
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:32.