Newsgroup: it.comp.lang.javascript
Titolo: Aggiornamento frame da un'altra finestra

Salve,
ho una pagina divisa in 2 frames ("intestazione" e "principale"); nel
primo frames c'è un pulsante che permette di aprire una finestrella
indipendente (contenente "wa.htm"), il secondo frame inizialmente è
vuoto. 
Nella finestrella aperta c'è un pulsante, che dovrebbe caricare una
pagina html nel frame "principale", come faccio?
Ho provato con:
onclick="top.principale.location='principale.htm'" ma IE mi dice che
"top.principale non è un oggetto"
Altra domanda: come posso accedere ad una funzione Javascript
contenuta in "wa.htm" da "principale.htm"? E' possibile anche se non
fanno parte dello stesso frameset?
Grazie.
Lupin 
hpage: 
http://i.am/eugenio
 ---> 
www.agonet.it/~eugenio.t/
Co-Webmaster di HTMLBox 
www.htmlbox.cjb.net
Acquisto di brani musicali via Internet - partecipa al sondaggio:
http://members.tripod.com/~n1pul/
Rimuovere XXX per rispondere via e-mail


Beh, in pratica ti serve l'handler della finestra...
handler=window.open(....);
handler.miafunzione();
Ciao.
Darius. (
www.infotronica.it/darius/
)

Prova con parent...
Con parent ho già provato ma ottengo lo stesso msg di errore, in
pratica parent mi funziona solo se lo uso da un frame x un frame
appartenente allo stesso frameset, altrimenti non va.


handler.miafunzione();
Cioč? Potresti spiegarti meglio?
Adesso funziona con top.nomefinestrella.nomefunzione(), di solito mi
da problemi...
Grazie.


appartenente allo stesso frameset, altrimenti non va.
Credo di aver risolto entrambi i problemi con la proprietà "opener" di
window.


>handler=window.open(....);
Quando apri una finestra con questa funzione, handler ti diventa praticamente un puntatore della finestra, con cui ti puoi riferire ad essa in questo modo:
    handler.miafunzione();
es.: apri un sito in una nuova finestra usando:
aaa=open("
http://www.infotronica.it/darius/
","_blank");
quindi ti puoi riferire a tutte le parti della finestra così:
alert("location="+aaa.location);
alert("location della frame 0="+aaa.frames[0].location);
alert(aaa.miafunzione());
Se hai aperto la pagina "aaa" dal frameset e ti trovi dentro un frame, fai top.aaa.miafunzione()
Se hai ancora problemi, ti mando un po' po' di codice...
Va meglio, adesso?
:)
Ciao.
Darius. (
www.infotronica.it/darius/
)

window.
Ah, ho detto parent? Sorry. Giuro che pensavo a opener...
Ciao.
Darius. (
www.infotronica.it/darius/
)

fanno parte dello stesso frameset?
top.intestazione.nomefinestra.nomefunzione()
L'importante è che l'handler "nomefinestra" sia una variabile globale.
CIAO :)

:)
Sě va meglio, tnx ;)
Mi č rimasto un dubbio:
quando apro una finestra es.
win = open ("win.htm",
"nomefinestra","toolbar=no,location=no,width=220,height=270");
quando devo riferirmi a questa finestra solitamente uso "win"; in
quali casi va usato il nome attribuito alla finestra ("nomefinestra")?
Grazie.


quali casi va usato il nome attribuito alla finestra ("nomefinestra")?
Il nome della finestra ti serve a poco: usa l'handler, che è meglio...
il nome si usa + frequentemente con i frames: top.frames['nomeframe']...
:)
Ciao.
Darius. (
www.infotronica.it/darius/
)

 finestra, ma non funziona!
Per risolvere il tuo problema dovrebbe essere sufficiente utilizzare
il
primo nome:
<a href="javascript:nomefinestra.close()">Link per chiudere</a>
E' comunque una cosa non tanto bella, perché se l'utente clicca sul
link
quando la finestra non è ancora stata aperta o quando è già stata
chiusa
questo codice genera un errore, dicendo che nomefinestra.close() non è
una funzione, in quanto la finestra nomefinestra non risulta definita.
Non so se esiste un modo per testare se una certa finestra esiste o
meno.
Riguardo ai nomi funziona così:
Il primo nome è una variabile Javascript che si riferisce all'oggetto
finestra.
Quindi dal primo nome (nomefinestra in questo caso) ci si può riferire
alle proprietà e ai metodi della finestra. Appunto la si può chiudere
con nomefinestra.close().
Il secondo nome, quello specificato in parentesi
(altro_nome_finestra),
è facoltativo, può essere diverso, e serve unicamente a riferirsi alla
nuova finestra come target di un link o di un form da altre finestre
del
navigatore. Per esempio:
<a href="Pippo.htm" target="altro_nome_finestra">Link a Pippo.htm
nella
nuova finestra</a>
In tal caso è necessario che venga specificato, "nomefinestra" non
funzionerebbe.
------------------------------------------------------------------
ciao!
-- 
____________________________________
Blow Your Speaker with Rock 'n' Roll
http://members.xoom.com/terzai
(ora diventata IV i)
...tatatatatata Heavy Metal - Bart Simpson

--------------------------------------------------------------------------------------
.......
.......
Tnx, mi sono chiarito le idee ;)


nuova finestra come target di un link o di un form da altre finestre
Già, me ne ero quasi scordato...
:)
Ciao.
Darius. (
www.infotronica.it/darius/
)