Newsgroup: it.comp.lang.javascript
Titolo: Sempre Finestre.... PROBLEMONE HELP!!!!

Ciao,
ho un po' di problemini...:)
Allora vi spiego quello che devo fare: ho una pagina con una tabella dove
per ogni riga c'è una checkbox e un nome di giocatore. Quando si seleziona
il primo  nome (attraverso la checkbox) deve essere aperta una finestra che
deve rimanere sempre in primo piano. La pagina principale deve rimanere
sempre attiva. In questa finestra devono essere elencati i nomi selezionati
nella pagina principale. Quando si selezionano altri nomi devo controllare
se la finestra è aperta in questo caso faccio il refresh della finestra (e
quindi dovrebbe elencare i nuovi nomi selezionati).
La parte che mi da problemi è quella relativa al controllo se la finestra è
aperta o chiusa. L'altra cosa che non riesco a fare è rendere la finestra
aperta sempre in primo piano e lasciare il controllo sempre alla pagina
principale.
Il codice che ho scritto (considerando il baco di IE sul metodo closed) è
questo:
Pagina principale:
<script>var winopen = false</script>
......
<form name="frmA<%=CountGiocA%>"><td><input type = 'checkbox' name =
'chkA<%=CountGiocA%>' value="<%=rsCalciatori("Nome_Giocatore")%>"
onClick='javascript:finestra_scambio("<%=squadraA%>","<%=squadraB%>")'
align="left"></td></form>
(Tralasciate il codice ASP cmq dovrebbe apparire una cosa del tipo:
<form name="frmA4"><td><input type = 'checkbox' name = 'chkA4' value="Del
Piero" onClick='javascript:finestra_scambio("Atletico Martina","Asmodeus")'
align="left"></td></form>
Ovviamente una riga x ogni giocatore)
ifm.js
function finestra_scambio(sqdA,sqdB)
{
   alert(winOpen) // restituire falso se la finestra è chiusa e vero se la
finestra è aperta....
   fsc =
window.open("about:blank","fsc","width=400,height=1000,toolbar=no,dependent=
yes");
   winOpen = true;
   fsc.document.write('<HTML>');
   fsc.document.write('<HEAD>');
   fsc.document.write('<TITLE>Riassunto Scambio</TITLE>');
   fsc.document.write('<SCR'+'IPT SRC="ifm.js"></SCR'+'IPT>');
   fsc.document.write('</HEAD>');
   fsc.document.write('<BODY onUnload ="winOpen=false;">');
   fsc.document.write('<TABLE BORDER=1 id = "scambio">');
   fsc.document.write('<TR>');
   fsc.document.write('<TD>Giocatori '+sqdA+'</TD>');
   fsc.document.write('<TD>Giocatori '+sqdB+'</TD></TR>');
   /*Qui ci sarà il ciclo for che controllerà il valore delle checkbox e
eventualmente stamperà il valore della checkbox*/
   fsc.document.write('</TABLE>');
   fsc.document.write('</BODY></HTML>');
}
Quando clicco per la prima volta su una checkbox l'alert mi restituisce
giustamente false. Se lascio la finestra aperta e clicco su un'altra
checkbox mi restituisce giustamente true. Fin qua tutto giusto. Se però
chiudo la finestra e clicco su un'altra checkbox mi restituisce erratamente
true. Immagino che il problema sia che non esegue l'evento onUnload, ma xè?
Ho anche provato a settare l'evento con l'istruzione
fsc.onUnLoad=winOpen=false; ma non funziona cmq. Come faccio a fargli
eseguire l'evento?????Non ho proprio idee....
ILLUMINATEMI PER FAVORE!!!!Sono disperato!!!!
Un'ultima cosina visto che ci sono.... Quale istruzione devo usare x fargli
eseguire il reload della finestra?
Grazie mille e scusate x la lunghezza....
Gian

 principale.
Prova con la Modale dello script di Zero che trovi sempre sullo stesso sito
nella sezione usersScript -finestre
andreotta fabiano
WebMªster ATI POWER s.n.c.
andr...@atipower.it
http://www.dxml.it
  (u.c.)
http://www.aticommerce.com
  (new)
http://www.atipower.it
http://www.jsdir.com

>   fsc.document.write('<BODY onUnload ="winOpen=false;">');
credo ( frase che significa prova ) che il problema sia qui sopra
la variabile winOpen che setti in questo modo si troverebbe sulla
stessa finestra che stai chiudendo
dovrebbe essere
  opener.winOpen=false.
la wnOpen infatti e' variabile propria della finestra che lancia la
popup
Mi sono astutamente cancellato il messaggio originale quindi non mi
ricordo se hai settato sulla pop up una varaibile che simmetricamente
dica alla stessa popup se la opener ancora sia aperta.
se si', potresti fare
variabileinpopchetienememoriadellostatoopenerriferitoalbacoIE?opener.WinOpen=false:alert(\'hai
astutamente chiuso la finestra principale\')
onde evitare il solito errore sulla applicazione server sparita etc
etc
che la semplice !opener.closed? in IE non basterebbe ad evitare  per
il noto baco.
[escape di caratteri  ' non controllato ai fini della correttezza del
codice in scrittura e forse da aggiustare] 

   opener.winOpen=false.
Ho provato ad aggiungere opener.winOpen. In effetti opener davanti ci vuole,
il problema dello script č che non effettua l'evento UnLoad alla chiusura
della finestra.
Ho provato ad aggiungere l'istruzione:
fsc.document.write('<SCR'+'IPT>window.onUnLoad=window.opener.winOpen=false;<
/SCR'+'IPT>');
(ovviamente ho levato l'evento dal tag BODY)
per settare l'evento non nel Body. Risultato: l'assegnazione č fatta appena
viene scritta la riga <script>... sulla pop-up. Quindi la variabile č
settata a false appena apro la finestra invece che quando la chiudo.... Come
cavolo faccio???Ormai l'explorer non lo capisco piů!!!
Help!!!!:)
A presto,
Gian

