Accedi agli elementi della finestra principale da iframe

Ho una pagina che possiamo chiamare parent.php. In questa pagina ho un iframe con un modulo di invio e al di fuori di questo ho un div con l’id “target”. È ansible inviare il modulo nell’iframe e quando il successo aggiorna il div target. Dì carica una nuova pagina o qualcosa del genere?

Modifica: Il div target è nella pagina padre, quindi la mia domanda è fondamentalmente se si può fare per un esempio una chiamata jquery al di fuori dell’iframe al genitore. E come sarebbe?

Modifica 2: ecco come appare ora il mio codice jQuery. È nella pagina iframe. il div #target è nel parent.php

$(;"form[name=my_form]").submit(function(e){ e.preventDefault; window.parent.document.getElementById('#target'); $("#target").load("mypage.php", function() { $('form[name=my_form]').submit(); }); }) 

Non so se lo script è attivo perché il modulo viene inviato con successo ma non accade nulla al target.

Modifica 3:

Ora sto cercando di chiamare la pagina padre da un collegamento all’interno dell’iframe. E nessun successo neanche lì

 Link 

Penso che il problema potrebbe essere che non trovi il tuo elemento a causa del “#” nella tua chiamata per ottenerlo:

 window.parent.document.getElementById('#target'); 

Hai solo bisogno del # se usi jquery. Qui dovrebbe essere:

 window.parent.document.getElementById('target'); 

Avere il sotto js all’interno dell’iframe e utilizzare ajax per inviare il modulo.

 $(function(){ $("form").submit(e){ e.preventDefault(); //Use ajax to submit the form $.ajax({ url: this.action, data: $(this).serialize(), success: function(){ window.parent.$("#target").load("urlOfThePageToLoad"); }); }); }); }); 

Puoi accedere agli elementi della finestra principale da un iframe usando window.parent questo modo:

 // using jquery window.parent.$("#element_id"); 

Che è lo stesso di:

 // pure javascript window.parent.document.getElementById("element_id"); 

E se hai più di un iframe annidato e vuoi accedere window.top più in alto, puoi usare window.top questo modo:

 // using jquery window.top.$("#element_id"); 

Che è lo stesso di:

 // pure javascript window.top.document.getElementById("element_id"); 

Penso che tu possa semplicemente usare window.parent dall’iframe. window.parent restituisce l’object finestra della pagina madre, quindi puoi fare qualcosa del tipo:

 window.parent.document.getElementById('yourdiv'); 

Quindi fai quello che vuoi con quel div.