Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Redirigir una pagina llamada por Iframe

Estas en el tema de Redirigir una pagina llamada por Iframe en el foro de Javascript en Foros del Web. Hola, Tengo una pagina HIJA ( http://midomino.com/app/aplicacion.html ) la cual es llamada desde otra página PADRE ( http://midominio.com/index.html ) por iframe... Como puedo hacer para ...
  #1 (permalink)  
Antiguo 04/04/2014, 13:28
Avatar de insyse  
Fecha de Ingreso: abril-2005
Ubicación: Colombia
Mensajes: 206
Antigüedad: 19 años
Puntos: 5
Redirigir una pagina llamada por Iframe

Hola,

Tengo una pagina HIJA (http://midomino.com/app/aplicacion.html) la cual es llamada desde otra página PADRE (http://midominio.com/index.html) por iframe...

Como puedo hacer para redireccionar al visitante a la pagina PADRE, si ingresa directamente por la pagina HIJA.

No puedo hacerlo con <meta http-equiv="refresh" content="0"> no con <?php header() ?>, por que cuando el visitante entra a la pagina PADRE, se hace un bucle en el iframe. asi que asi no me sirve...

Necesito algo que evalue si la pagina HIJA se abre fuera del iframe y en ese caso si se haga la redireccion.

Espero que alguien pueda ayudarme.

PDTA. Se que hay quien me dirá que no debería usar, iframe, pero en este caso solamente puedo hacerlo de esa forma, así que agradezco no me indiquen que no debería hacerlo.
__________________
.................................................. ...........................
No todos nacemos aprendidos !
  #2 (permalink)  
Antiguo 04/04/2014, 15:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Redirigir una pagina llamada por Iframe

Si dicha página está originalmente incluida en otra dentro de un <iframe> y quieres comprobar si se ha accedido dicha página pero de manera externa, el cambio lo notarías en la URL. Verifica si la URL es distinta al de la página principal, de serlo, realiza la redirección.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 04/04/2014, 18:11
Avatar de insyse  
Fecha de Ingreso: abril-2005
Ubicación: Colombia
Mensajes: 206
Antigüedad: 19 años
Puntos: 5
Respuesta: Redirigir una pagina llamada por Iframe

Ok, suena lógica tu propuesta, pero no funciona.

He tratado con este script

if ($_SERVER["REQUEST_URI"]="http://midominio.com/apps/aplication.html");{header('Location:http://midominio.com/');}

al ingresar a http://midominio.com/apps/aplication.html, efectivamente me redirecciona a http://midominio.com/ pero el iframe me carga también http://midominio.com/

Pero me sale el mismo bucle, dentro del iframe.

Como hago para que el iframe lea la URL que tiene la ventana padre y no la que carga el iframe?
__________________
.................................................. ...........................
No todos nacemos aprendidos !
  #4 (permalink)  
Antiguo 04/04/2014, 19:14
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: Redirigir una pagina llamada por Iframe

Esta es tu solución:

<script>
if (window.top == window.self) {
window.location.href = 'url-padre';
}
</script>

Eso debe estar al incio del archivo que va en tu frame hijo. La lógica es esta, mediante window.top obtengo el frame principal, el padre, como tú le llamas, y mediane window.self obtengo el frame actual. Si son iguales, entonces quiere decir que alguien está abriendo la página que está en iframe hijo, entonces te redirige al padre. Pruébalo.
  #5 (permalink)  
Antiguo 04/04/2014, 19:18
Avatar de insyse  
Fecha de Ingreso: abril-2005
Ubicación: Colombia
Mensajes: 206
Antigüedad: 19 años
Puntos: 5
Respuesta: Redirigir una pagina llamada por Iframe

Oh... Excelente, era así de fácil.. Funciono perfectamente...

Mil gracias.
__________________
.................................................. ...........................
No todos nacemos aprendidos !
  #6 (permalink)  
Antiguo 04/04/2014, 23:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Redirigir una pagina llamada por Iframe

Me preguntó por qué se produciría ese bucle, digo, si cargas a la segunda página en un <iframe>, no entiendo el porqué del bucle que mencionas.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 05/04/2014, 14:15
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: Redirigir una pagina llamada por Iframe

Si por bucle te refieres a la condicional, te diré por qué. Cuando cargas una pagina en un iframe y si pones este código:

window.top

te devolverá una referencia al frame principal, el padre de todos, y este otro código:

window.self

te devuelve la referencia del frame actual, o sea, donde se está ejecutando el script. Entonces, si es el mismo, quiere decir que se está cargando el archivo en el navegador mismo y no en un iframe ni frame. Por eso pongo así la condicional, si se está cargando en el navegador mismo ese archivo entonces te redirige a la dirección del padre. Eso es todo.
  #8 (permalink)  
Antiguo 05/04/2014, 14:34
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Redirigir una pagina llamada por Iframe

No pregunté por la condición que pones, está bastante clara. Me refiero al bucle que menciona insyse en esta respuesta:

Cita:
Iniciado por insyse Ver Mensaje
Pero me sale el mismo bucle, dentro del iframe.
Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 09/04/2014, 17:53
Avatar de insyse  
Fecha de Ingreso: abril-2005
Ubicación: Colombia
Mensajes: 206
Antigüedad: 19 años
Puntos: 5
Respuesta: Redirigir una pagina llamada por Iframe

Alexis el bucle que me salia es que e cargaba asi...

[Padre]
<iframe>[Padre]</iframe>
<iframe>[Padre]</iframe>
<iframe>[Padre]</iframe>

Cuando deberia ser así.
[Padre]
<iframe>[Hijo]</iframe>

y ya..
pero con el script de Artificium, me funcionó perfecto.
__________________
.................................................. ...........................
No todos nacemos aprendidos !
  #10 (permalink)  
Antiguo 09/04/2014, 19:20
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Redirigir una pagina llamada por Iframe

Hubiera sido bueno que nos mostraras el código para ver por qué te sucede eso. He trabajado antes cargando archivos externos dentro de otro y nunca me sucedió el problema del bucle que mencionas.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: iframe, redireccionar
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 11:05.