Newsgroup: it.comp.lang.javascript
Titolo: Comunicare che una certa finestra si è chiusa

Dunque, facile che mi sia arrugginito con il js ...
faccio mywin = window.open e tutto quello che ne consegue
dentro alla pagina html che carico in mywin, metto nell'evento
onunload un semplice alert(mywin) ... non viene fatto vedere
nessun alert, ma se metto alert(
window.parent.name
) viene
visualizzato mywin.
A parte questa cosa idiota, a me interessava poter ripristinare
la variabile mywin dentro la prima pagina, in modo da
sapere se su un click successivo (sempre della prima pagina)
devo ricaricare o semplicemente dare il focus.
Grazie
per l'aiuto
Andrea

Cioè, faccio una precisazione ... con le finestre normali
funzionerebbe pure è con le chromeless che non va.
Ho notato anche che facendo click consecutivi - non in termini
di velocità - la condizione if(!MyWin) una volta è vera e
uan è false ... cioè si resetta.
Perchè??
Questo è lo script della pagina principale
<script language="javaScript">
var MyWin;
function openIT(theURL, W, H, wname)
{
  if(!MyWin)
  {
 CLOSEdwn   = "images/close_dwn.gif"
 CLOSEup   = "images/close_up.gif"
 CLOSEovr   = "images/close_ovr.gif"
 MINIdwn   = "images/mini_dwn.gif"
 MINIup    = "images/mini_up.gif"
 MINIovr   = "images/mini_ovr.gif"
 NONEgrf   = "images/none.gif"
 CLOCKgrf  = "images/clock.gif"
        titHTML = "&nbsp;<font face='Verdana' size='2'>Test</font>" //change
to your desired window title
        titWIN = "Web-MA Soluzioni Informatiche" //your desired status bar
title
        winBORDERCOLOR = "#000000" //change to your desired border color
        winBORDERCOLORsel = "#FFFFFF" //change to your desired selected
border color
        winBGCOLOR = "#AAAAAA" //change to your desired top bar background
color
        winBGCOLORsel = "#888888" //change to your desired top bar selected
background color
 return openchromeless(theURL, wname, W, H, NONEgrf, CLOSEdwn, CLOSEup,
CLOSEovr, MINIdwn, MINIup, MINIovr, CLOCKgrf, titHTML, titWIN,
winBORDERCOLOR, winBORDERCOLORsel, winBGCOLOR, winBGCOLORsel)
  }
  else
  {
    MyWin.focus();
    return true;
  }
}
function closeIT()
{
  if (MyWin)
    MyWin.close();
}
</SCRIPT>
</HEAD>
<BODY onunload="closeIT();" onload="MyWin = openIT('main.htm', 700, 400,
'MyWin');" bgcolor=#666666 TOPMARGIN=0 LEFTMARGIN=0 MARGINWIDTH=0
MARGINHEIGHT=0 scroll="no" style="border: 0px; overflow: hidden; margin:
0pt;">
e qiestp qullo della pagina richiamata
  <body onunload="CloseWin();" background="images/background.jpg"
bottomMargin="0" leftMargin="0" topMargin="0" rightMargin="0">
 function CloseWin()
 {
  window.opener == "";
  alert(window.opener == "" + ' ');
 }
  //-->
  </script>
Ciao
Andrea

la variabile mywin esiste solo nella finestra madre che la origina, non puoi
dalla finestra figlia dire alert(mywin).
Il comando
alert(
window.parent.name
)
non ha molto senso: visualizza probabilmente un alert vuoto, ma è
praticamente lo stesso che dire alert('');
Per accedere dalla finestra figlia la finestra che la ha aperta
top.opener
Consiglio l'uso di top.
A questo modo per verificare se l'alert dalla figlia è già stato lanciato
puoi creare due variabili nella madre:
mywinopen=0;
mywin=window.open(blabla)
poi dalla figlia
if(!top.opener.mywinopen){
alert('ciao');
top.opener.mywinopen=1;
}
ciao
Alberto
  ----- Original Message -----
  From: Andrea Moro
  Newsgroups: it.comp.lang.javascript
  Sent: Saturday, January 04, 2003 5:48 PM
  Subject: Comunicare che una certa finestra si è chiusa