3 messaggi dal 12 maggio 2004
Come mai l'evento di chiusura della popup si sctena solo se clikka sulla (X) della finestra, ed è invece ignorato se si utilizza un bottone che scrive lo script window.close(); ?
mm, ho appena provato e a me funziona. Ho aggiunto all'esempio di pagina1.htm questo codice

<input type="button" onclick="window.close()" value="chiudi"/>

Ciao

Il mio blog
Homepage
3 messaggi dal 12 maggio 2004
Ho fatto qualche prova è ho notato che:

- se inserisco nella popup che viene aperta, altri controlli (es. Button) che compiono delle operazioni, quando scateno l'evento a loro associato per la prima volta su uno di essi, vengono effettuate le operazioni a loro associate e si invoca anche l'evento PopupClosed nella pagina padre (e noto che per la pagina padre si ha un reload);

- le successive volte che scateno l'evento corripondente su uno dei controlli vengono compiute le operazioni ad esso associate ma l'evento PopupClosed non viene più chiamato e questo accade anche se clikko sul bottone che chiude la popup;

- se clikko per primo il bottone che chiude la popup il metodo PopupClosed viene chiamato (si ha sempre un reload della pagina padre);

- dopo aver clikkato per la prima volta su un controllo (escluso il bottone che chiude la popup) l'unico modo per chiudere la popup e invocare PopUpClosed è utlizzare la (X) della finestra;

La cosa è legata al reload della pagina padre che viene effettuata solo la prima volta che si clikka su un controllo, come si può forzare il reload ogni volta?

Grazie!!!
Allora, il problema è nell'architettura nel controllo. Siccome l'articolo era sulla creazione di un controllo ho limitato le sue potenzialità. Purtroppo per fare quello che chiedi te occorre scrivere nel codice anche nella pagina popup.
Il problema è che se hai visto il codice, intercetto l'evento unload della finestra.
Questo evento parte anche quando effettui il submit della form o cambi pagina (non esiste un evento close della window) ed ecco spiegato perché parte l'evento nella pagina main.
La funzione che imposto tramite win.unloadFct e l'intercettazione dell'evento ad ogni cambio di pagina viene persa, ed ecco spiegato perché funziona solo se non hai scatenato postback.
Bisognerebbe scrivere del codice nella pagina di popup che, preleva la funzione da window.opener (riferimento che non si perde) e che si auto intercetta all'evento unload. Inoltre va inibita questa funzione se viene effettuato un postback. Questo si ottiene sostituiendosi al metodo submit() della form e andando a ridefinire l'evento onsubmit.
Insomma non è semplice effettuare un controllo così potente e trasparente a chi sviluppa su main e popup

Ciao

Il mio blog
Homepage
3 messaggi dal 12 maggio 2004
Ho capito la problematica. Mi sta bene inserire codice nella finestra popup; se non ho capito male quando si passa ad una nuova pagina, bisogna ridare la funzione unloadFct e assegnarlo all'evento. Ma unloadFct va ridefinita nella pagina principale, o si richiama direttamente con window.opener.win.unloadFct?
Non mi è tanto chiaro come gestire il postback dovuto ai controlli.

Grazie!!!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.