2011-05-28 58 views
11

Ok, estoy usando un iframe en una página. El contenido dentro del iframe no tengo control y se está utilizando con un programa Adobe Flash.Necesita salir del iframe después de enviar el contenido en iframe

Pero una vez que el formulario se ha enviado dentro del iframe (que no tengo control), carga una PÁGINA, TENGO CONTROL Over, pero tiene esa página dentro del IFRAME en lugar de salir del iframe en esa página. ¿Cómo salgo del iframe solo en esa página?

Estoy asumiendo que se necesita algo de JavaScript, pero este código no es bueno:

if (top.location != self.location) { 
top.location = self.location; 
} 

uso de este código carga la página principal del índice para el sitio. Necesito que solo cargue la página después de que se envíe el formulario y salga de él. De nuevo, tengo acceso a la página que se carga dentro del iframe después de que el formulario se envía dentro del iframe.

Por favor, ayúdame.

¿Quizás una forma complicada de hacerlo está involucrada? Por ejemplo, mientras se carga la página? ¿O de alguna manera comprobar que el iframe ha sido enviado? Controlo las dos páginas en mi sitio web (la página que contiene el iframe originalmente y la página a la que se envía el iframe), pero no el contenido de los iframes.

Gracias :)

+0

¿Usted está poniendo el código en la página exterior o en la página del iframe? Además, ¿podría encontrarse con un problema de seguridad causado por páginas externas e internas que tienen dominios diferentes? – ErikE

Respuesta

11

creo que desea que esta

if(this != top){ 
    top.location.href = this.location.href; 
} 

para salir

Se podría necesitar la referencia del documento también ... No estoy en un ordenador para comprobar.

if(this != top){ 
    top.document.location.href = this.document.location.href; 
} 
+0

¿Dónde pongo ese código? ¿En la cabeza? ¿Cómo sabe qué es 'this'? ¿O qué 'top' está dentro del Javascript? ¿Lo sabrá automáticamente o tiene que definirse? – SoLoGHoST

+0

esto NO funciona, todavía me lleva al índice de sitios en lugar de a la URL a la que va el iframe. – SoLoGHoST

+0

¿cuál es la URL de la página? y solo hay un cuadro? Lo pregunto porque he usado este código docenas de veces y sé que funciona. Sí, puedes ponerlo en la cabeza o en el cuerpo ... arriba es una referencia global a la ventana superior, y esto se refiere automáticamente a "esta" ventana. PD Puedo haber hecho un poco de tonto, puede necesitar el 'documento' en el nombre completo. – scunliffe

1

lo que funcionó para mí fue:

(function() { 
    'use strict'; 
    console.log('window.top.location', window.top.location); 
    console.log('window.location', window.location); 

    if (window.location !== window.top.location) { 
     window.top.location = window.location; 
    } 
})(); 

Inspirado por https://css-tricks.com/snippets/javascript/break-out-of-iframe/

Cuestiones relacionadas