Newsgroup: it.comp.lang.javascript
Titolo: Aggiornare una finestra figlia solo se aperta.

Ho una pagina di amministrazione di un sito.
Nel frame del menu c'č il link al sito che me lo apre in un'altra
finestra tramite una funzione JS.
Io devo far sě che, quando si aggiorna menu.asp, si aggiorni anche la
finestra, ma SOLO SE l'utente l'ha precedentemente aperta.
Ho trovato una faq su JSdir che risolveva la questione ponendo il
window.open in una variabile globale, ma cosě facendo la finestra mi si
apre sia che l'utente lo voglia sia che non lo voglia ogni volta che si
carica il menu.
Ho provato cosě:
var URL = ""
var azione = ""
function sito(URL, azione)
{
	if(azione == 'aggiorna')
	{
		if (sito.close == false)
		{
			sito.location = URL;
			sito.focus();
		}
	}
	else
	{
		sito = window.open(URL, 'sito', 'scrollbars=yes, resizable=yes,
menubar=yes, location=yes, status=yes, toolbar=yes, directories=yes');
		sito.focus();
	}
}
[il tutto in un file.js esterno, ma non credo che cambi le cose...]
All'interno del documento c'č il link <a
href="javascript:sito('
http://nomesito
','apri')">nomesito</a>, mentre
nel body ho messo onload="javascript:sito('
http://nomesito
',
'aggiorna')"
Qualcuno mi sa dire perché della mia funzione funziona (scusate il gioco
di parole) solo l'else e non l'if?
Ciao e grazie :)
Vally
-----
Valeria Giulia Sestini
http://www.zine.it
---------------
*************
 Fata volentem ducunt, nolentem trahunt
**********************************

 di parole) solo l'else e non l'if?
Probabilmente perché, se non hai sbagliato a copiare la funzione, c'è un errore 
di sintassi: la riga "if (sito.close == false)" dev'essere "if (sito.closed == 
false)". Manca la "d" finale di "closed".
E comunque la modificherei ulteriormente in : "if (sito&&!sito.closed)"
Quel'è la FAQ? Non la trovo.
-- 
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
              All the JavaScript you need
------------------------------------------------------------------------
               Nessun traguardo è abbastanza lontano.
------------------------------------------------------------------------

 
Uoooooooops... sono io che ho sbagliato a copiare... sorry sorry :)
La faq era la 213.
Ora provo.
Grazie per la risposta :)


Ariecchime.
Mumble mumble. Funge e non funge.
Mi da un errore: proprietà o metodo non supportato dall'oggetto.
<ingenuità che può essere utile ai newbies>
Prima di vedere a che linea era l'errore, in un attimo di follia ho
scambiato l'ordine delle proposizioni pensando che il browser
considerasse ancora sito="" perché la finestra l'aprivo nell'else invece
che nell'if... poi mi sono data della stupida perché se la finestra è
stata aperta dal browser, è evidente che il browser sa che c'è...
Beh... attimo d'ingenuità... capita a tutti :)
</ingenuità>
Comunque visto che l'errore lo da su sito.focus(), vuol dire che il tuo
codice l'ha preso in entrambi i casi (li ho provati tutti e due).
Il Microsoft Development Environment (ovvero quell'aggeggio infernale
che mi chiede ogni volta se voglio fare o meno fare il debug e che forse
un giorno imparerò ad usare...) mi dice che sito è un oggetto, ma anche
focus lo è.
Ora, se sito è definita come window.open, non dovrebbe essere
considerata un oggetto window e quindi accettarne tutte le proprietà?
Risultato: non solo non mi da il focus al sito, ma nemmeno gli cambia
l'indirizzo.
Mah... intanto applico il principio asp del onerror resume next:
commento sito.focus() facendo sparire l'errore, così l'utente non se ne
accorge e finché non avrò trovato una soluzione, aggionerà il sito
manualmente :)
Come diceva una vecchia canzone: "C'est difficile, mais c'est la vie"
Vally

-- 
