2011-05-28 14 views
11

Ok, sto utilizzando un iframe su una pagina. Il contenuto dell'iframe non ha alcun controllo e viene utilizzato con un programma Adobe Flash.È necessario uscire dall'iframe dopo aver inviato il contenuto in iframe

Ma una volta che il modulo viene sommato all'interno dell'iframe (di nuovo su cui non ho alcun controllo), carica una pagina, I DO HAVE CONTROL Over, ma ha quella pagina all'interno dell'IFRAME invece di uscire dall'iframe in quella pagina. Come faccio a uscire dall'iframe solo su quella pagina ??

Sto supponendo che alcuni Javascript è necessario, ma questo codice non va bene:

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

Utilizzando questo codice carica la pagina indice principale per il sito. Ho bisogno di caricare semplicemente la pagina dopo che il modulo è stato inviato e di uscire da esso. Ancora una volta, ho accesso alla pagina che viene caricata all'interno dell'iframe dopo che il modulo è stato inviato all'interno dell'iframe.

Per favore aiutatemi.

Forse un modo complicato di farlo è coinvolto? Ad esempio mentre la pagina viene caricata? O in qualche modo controllare che l'iframe sia stato inviato? Controllo entrambe le pagine sul mio sito Web (la pagina che contiene l'iframe in origine e la pagina a cui viene inviato l'iframe), ma non il contenuto degli iframe.

Grazie :)

+0

stai mettendo il codice nella pagina esterna o la pagina del iframe? Inoltre, potresti incontrare un problema di sicurezza causato dalle pagine esterne e interne che hanno domini diversi? – ErikE

risposta

11

credo che si desidera che questo

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

di uscire

Potrebbe essere necessario il riferimento del documento troppo ... Io non sono a un computer per controllare.

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

Dove inserisco quel codice? Nella testa? Come fa a sapere che cosa è questo? O quale 'top' è all'interno di Javascript? Lo saprà automaticamente o deve essere definito? – SoLoGHoST

+0

questo NON funziona, mi porta ancora all'indice dei siti invece dell'URL a cui l'iframe va. – SoLoGHoST

+0

qual è l'URL della pagina? e c'è solo un frame? Lo chiedo perché ho usato questo codice dozzine di volte e so che funziona. Sì, puoi metterlo in testa o nel corpo ... top è un riferimento globale alla finestra più in alto, e questo si riferisce automaticamente alla finestra "this". PS Forse ho sofferto leggermente, potrebbe essere necessario il "documento" nel nome completo. – scunliffe

1

Che cosa ha funzionato per me era:

(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; 
    } 
})(); 

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

Problemi correlati