Salve amici, ho una pagina da cui posso aprire una finestra per caricare delle foto. Al termine dell'upload posso chiudere la finestra, però vorrei che automaticamente si aggiornasse la pagina da cui è provenuta.
Come posso fare?
Salve amici, ho una pagina da cui posso aprire una finestra per caricare delle foto. Al termine dell'upload posso chiudere la finestra, però vorrei che automaticamente si aggiornasse la pagina da cui è provenuta.
Come posso fare?
Digital XP - The new expression of digital art! - http://www.mimanchitu.it
Se la pagina da cui hai aperto la popup ha un form i cui dati vanno rispediti, devi fare il submit di tale form. Altrimenti basta un refresh della pagina. Nello specifico, prima del window.close() nella finestra popop scrivi:
In entrambi i casi, l'if controlla se esiste un oggetto opener. Se l'utente ha chiuso la finestra principale dopo aver aperto la popup, opener non esiste più e quindi lo script di aggiornamento della finestra principale non viene eseguito, evitando errori.codice:Se devi reinviare i dati del form: if (window.opener) window.opener.document.getElementById("ID_FORM").submit(); // ID_FORM è l'id del form di cui devi fare il submit Se devi semplicemente aggiornare la pagina: if (window.opener) window.opener.location.reload();![]()
dunque, ho questo problema... la pagina viene chiuso cliccando su CHIUDI, quindi:
dove devo inserire il codice che mi hai suggerito?codice:CHIUDI
Digital XP - The new expression of digital art! - http://www.mimanchitu.it
self.close() è lo stesso che window.close(), poiché self è un autoriferimento alla finestra corrente. Quindi il tuo codice diventa (modificato per evitare lo pseudoprotocollo javascript: che non è uno standard):
Basta che inserisci l'id del form di cui devi fare il submit o che modifichi document.getElementById('ID_FORM').submit(); con location.reload(); se devi semplicemente aggiornare la pagina senza rispedire dei dati.codice:CHIUDI
Ciao,
se clicco sulla x della finestra, come intercetto l'evento?
Il codice che hai postato è compatibile sia con IE che con Mozilla?
grazie
Luca
Il codice è compatibile con tutti i browser moderni (anche se ammetto che sarebbe meglio seguire il pattern MVC, separando del tutto azione e struttura, piuttosto che usare onclick direttamente nel tag <a>, ma questa è un'altra storia).
Per intercettare l'evento di chiusura della finestra, il gestore da usare è onunload (va usato nell'elemento <body> della pagina). Questo gestore in realtà intercetta lo "scaricamento" del documento (non la chiusura della finestra). Il documento viene "scaricato" quando la finestra viene chiusa oppure quando il suo contenuto cambia (anche aggiornando la stessa pagina). onunload viene eseguito un attimo prima dello "scaricamento" del documento.![]()