Foros del Web » Programando para Internet » Javascript »

ayuda con iframe

Estas en el tema de ayuda con iframe en el foro de Javascript en Foros del Web. Hola otra vez! Tengo problemas para sacar informacion de la pagina cargada en un iframe a partir de la principal donde está contenido el iframe. ...
  #1 (permalink)  
Antiguo 28/08/2003, 15:40
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
ayuda con iframe

Hola otra vez!
Tengo problemas para sacar informacion de la pagina cargada en un iframe a partir de la principal donde está contenido el iframe. El caso es que uso el metodo getElementsByTagname("div"), pero no se como acceder. Yo utilizaba algo como: document.getElementById('nombre_iframe').document. getElementsByTagname("div"), pero no lo estoy haciendo bien, y la verdad es que me tiene hasta mareadilla esto... Plis necesito ayuda! Gracias por adelantado myfriends. Y una vez mas, un a todos los que nos ayudais dia a dia!!
  #2 (permalink)  
Antiguo 28/08/2003, 18:51
 
Fecha de Ingreso: agosto-2003
Ubicación: Tampico Tamaulipas
Mensajes: 54
Antigüedad: 20 años, 8 meses
Puntos: 0
intenta asi

nombre_del_frame.document.getElementsByTagname("di v")
  #3 (permalink)  
Antiguo 28/08/2003, 22:35
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
No funciona asi, ya lo estuve probando. Pero gracias de todas formas. Si alguien mas puede ayudarme lo agradeceria.
  #4 (permalink)  
Antiguo 28/08/2003, 22:52
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola debspain.

Debes tomar en cuenta que lo que retorna el método getElementByTagName no es un elemento sino una colección.

Prueba...

alert(nombreDelIframe.document.getElementsByTagnam e("div")[0].name);

...a ver que te sale.

Saludos.
  #5 (permalink)  
Antiguo 29/08/2003, 08:37
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
Hola Kaopectate!
se que el metodo getElementsByTagName devuleve una colección, de hecho es lo que quiero que haga, en primer lugar debe coger la coleccion de capas de la pagina del iframe, y con el bucle va centrandolas todas segun el ancho de la página (que variará segun la resolucion de pantalla que se use).

var capas_com=document.mapa.document.getElementsByTagN ame("div");

var num_capas = capas_com.length
for (i=0; i<num_capas; i++)
{
capas_com[i].style.left = (document.getElementById('mapa').width - parseInt(capas_com[i].style.width)) /2
}

El caso es que este código en la pagina donde tiene que llevarse a cabo (esta es la contenida en el iframe), funciona a la perfeccion, vamos que solo cambio var capas_com=document.mapa.document.getElementsByTagN ame("div"); por var capas_com=document.getElementsByTagName("div");. El problema está en que si lo pongo en la pagina que contiene el iframe y pongo mapa.document.getElementsByTagName("div"); o lo que he escrito arriba en primer lugar, no funciona, y no entiendó el por qué. A ver si alguien me ayuda... Muchisimas gracias de todas formas!
  #6 (permalink)  
Antiguo 29/08/2003, 14:41
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
alguien sabe por que pasa eso? necesito ayuda urgentemente
  #7 (permalink)  
Antiguo 30/08/2003, 05:10
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
nadie sabe por qué no funciona? ...
  #8 (permalink)  
Antiguo 31/08/2003, 06:40
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
No me daré por vencida...

¿en serio que con la de expertos que hay aqui, nadie sabe qué puedo hacer? Al final si llorare y todo...
  #9 (permalink)  
Antiguo 31/08/2003, 07:36
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola debspain.

Yo he estado corto de tiempo y al leerme tu mensaje no lo he entendido muy bien, por eso no te he contestado mas. Ahora estoy haciendo un "toque técnico" en la oficina y quizás regrese mas tarde.

Sería muy bueno si aprovechas de poner lo mas claro que puedas tu problema a ver si yo (o cualquiera) al entrar puede ayudarte. Siento que lo que planteas es facil de resolver, pero lamentablemente me pierdo en tu mensaje.

Tambien debes tomar en cuenta que los fines de semana mucha gente no entra en el foro, el lunes hay mas movimiento.

Saludos.
  #10 (permalink)  
Antiguo 31/08/2003, 09:16
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
Hola KAopectate! PErdon por molestar tanto, solo que llevo el problema durante varios dias y necesito acabar el codigo urgentemente, pero perdon si he molestado a alguien con tantos mensajes...

Por lo que me has dicho, no entiendes el mensaje, y veras es muy facil lo que quiero hacer.

Quiero, desde una pagina, coger una coleccion de capas de un iframe contenido en esa página, para luego centrarlas en el centro de la pagina que esta en el iframe (cuyo nombre es "mapa"). Y si el codigo que ya puse en el mensaje anterior lo uso en la misma pagina del iframe, funciona a la perfección, pero no me es posible poner el script en la pagina del iframe, asi que estoy intentando ponerlo en la pagina que lo contiene, osea el padre.

El problema es simplemente que no puedo acceder desde la pagina padre al metodo getElementsByTagname() de la pagina hijo.

Solo es eso, e intenté hacer lo que dijo matcruz, vamos lo tipico:
nombre_del_frame.document.getElementsByTagname("di v"), pero no funciona asi, y no se como es.

Lo dicho, perdon y si me puedes ayudar tu o cualquier persona en cuanto os sea posible lo agradeceré eternamente ;).
  #11 (permalink)  
Antiguo 03/09/2003, 14:29
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
nadie sabe como acceder?
  #12 (permalink)  
Antiguo 03/09/2003, 18:49
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola de nuevo debspain.

A ver si entiendo:

Tienes una página (digamos PAG) la cual tiene un iframe (digamos IFR) el cual tiene una colección de capas en el.

Tienes un algoritmo para centrar todas esas capas el cual funciona en IFR, pero cuando lo mueves a PAG, nada de nada.

¿Voy bien?

El modo de direccionar el iframe desde afuera (hasta donde yo llego) es el que te dijo matcruz, por lo que si no te funciona, algo raro debe haber en otro lado.

Hagamos algunas pruebas:

- Pon un alert en PAG, justo donde tienes el algoritmo que no funciona, para que te diga por ejemplo el nombre de tu iframe. Asi: alert(nombre_del_frame.name);
Si esta bien escrito, deberá responder: "nombre_del_frame", sino, dará error.

- Si estamos bien con el nombre, pregunta por una propiedad del document, por ejemplo: alert(nombre_del_frame.name.document.title);

- Si estamos bien, pregunta por el largo de tu colección de divs a ver que pasa.

Dependiendo de donde se caen las pruebas podremos sacar conclusiones.

Saludos.
  #13 (permalink)  
Antiguo 04/09/2003, 08:13
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
Kaopectate... no te lo vas a creer.
HAce 5 minutos, y despues de pasar como 1 semana haciendo pruebas y más pruebas, me doy cuenta que la definicion de la variable donde guardo la coleccion de capas la habia puesto en el lugar equivocado, asi que todo error mio, veras, habia preparado un script donde con un metodo setInterval() comprobara que la pagina se ha cargado completamente, esta es la primera funcion declarada y la primera funcion que llamo en la pagina, y yo había declarado la variable en cuestion justo antes de declarar la funcion, el error supongo que es que el contenido de la pagina aun no se ha empezado a cargar cuando llamo a una funcion desde el <head>, no? Si la declaro dentro de la otra funcion a la cual llamo en setInterval ya no da ningun error y funciona a la perfeccion. PErdon por mi pesadez... pero jamás cai en que fuera error de ahi. Aunque tarde, almenos me he dado cuenta... Muchisimas gracias de todas formas Kaopectate!
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:13.