detect window close con open(location, '_blank').close();

  • Creatore Discussione Creatore Discussione ans66
  • Data di inizio Data di inizio

ans66

Utente Attivo
27 Ago 2011
158
0
16
Spiego subito il problema che non riesco a risolvere:

Ad un click su un elemento di una Select (nuovo soggetto) apro la relativa tabella (window popup) per l'inserimento di un nuovo elemento:

Codice:
$("select#soggetti").change(function(){ rit=VerificaChange("soggetti");  }   });

function VerificaChange(tipo) {

var nuovoTipo="";
var TabellaTipo="";

switch(tipo) {
    case "soggetti":
        nuovoTipo="NUOVO SOGGETTO";
        TabellaTipo="tabSoggetti.php";
        break;
    case "categorie":
        nuovoTipo="NUOVA CATEGORIA";
        TabellaTipo="TabCateg.php";
        break;
    
        
}


var Sel=$("select#"+tipo+" option:selected").text();
if(Sel!=nuovoTipo) {return false;} else {


    var windowWidth = 1100;
    var windowHeight = 500;
    var xPos = (screen.width/2) - (windowWidth/2);
    var yPos = (screen.height/2) - (windowHeight/2);
    
    
    
    myWindow = window.open(TabellaTipo,"","width=" + windowWidth+",height="+windowHeight +",left="+xPos+",top="+yPos);
    
    
    // tentativi non funzionanti
    //if (myWindow.closed) { 
    //        
    //      refreshSelect();
    //    } else {
    //        
    //    }
 
    
    
}

La Finestra myWindow viene chiusa dopo l'inserimento:

Codice:
// chiusura
$("#fifteen").click(function(){

// Top level window
open(location, '_blank').close(); // chiude se è stata aperta con window open

});

Non riesco ad intercettare l'evento di chiusura della finestra myWindow in seguito alla quale devo fare un refresh della Select. Ogni mio tentativo non ha dato buon esito perché l'evento veniva intercettato prima della chiusura

Grazie per l'aiuto.
 
Ciao, nella popup puoi aggiornare la pagina che l'ha aperta , dovrebbe essere cosi
Codice:
opener.location.reload();
ti basta inserirlo prima del close o sull'onunload della popup
puoi anche lanciare una funzione
Codice:
opener.location.tuafunzione()
 
Ultima modifica:
Ciao Ciric,

Ho provato a fare come mi hai detto ma purtroppo non funziona anzi mi sono accorto che anche

Codice:
open(location, '_blank').close();
non si comporta come dovrebbe. Anziché chiudere del tutto la finestra la iconizza.

Stasera riproverò di nuovo e ti aggiornerò meglio
 
prova anche cosi
pagina principale
HTML:
<html>
    <head>
        <script>
            function miaFunzione() {
                alert("popup chiusa");
            }
            function apriPopup() {
                window.open("popup.html", "", "width=500,height=400");
            }
        </script>
    </head>
    <body>
        <a href="javascript:apriPopup()">apri popup</a>
    </body>
</html>
popup.html
HTML:
<html>
    <head>
        <script>
            function chiudi() {
                window.close();
                opener.miaFunzione();
            }
            </script>
    </head>
    <body onbeforeunload="chiudi()">
        <a href="javascript:chiudi()">chiudi</a>
    </body>
</html>
 

Discussioni simili