Newsgroup: it.comp.lang.javascript
Titolo: Come chiamare una funzione di una nuova finestra?

Ho scritto un file HTML che, al caricamento, apre una nuova finestra.
Il mio problema e' che non riesco a richiamare le funzioni in javascript
che si trovano nel file relativo a quella finestra. La porzione di
codice che riguarda lo script e' il seguente (controls e' il nome della
nuova finestra mentre init() e' una funzione che voglio richiamare  e
che si trova nel file VControls.html):
<SCRIPT TYPE="text/javascript"  FOR="window" EVENT="onLoad">
controls=window.open("VControls.html","c","scrollbars=yes,resizable=yes,
            width=300,height=470,status=no,location=no,toolbar=no");
controls.init();
 </SCRIPT>
L'errore che ottengo e' "Proprieta' o metodi non supportati
dall'oggetto".
Grazie Federica
P.S. la versione con frame (controls e' il nome di uno dei due frame) e
codice
<SCRIPT TYPE="text/javascript"  FOR="window" EVENT="onLoad">
controls.init();
 </SCRIPT>
funziona!
--
****************************************************************
Federica Mandreoli Ph.D. Student
CSITE-DEIS - Viale Risorgimento, 2 - University of Bologna
****************************************************************
phone: 
+39 051  6443072
  fax: +39 51 6443540
e-mail: 
fmand...@deis.unibo.it
www:    
http://www-db.deis.unibo.it/~mandreol
****************************************************************

Forza Bologna!
;)
lascia perdere gli script event
netscape non li sopporta..
<SCRIPT language="JavaScript">
onload = function Rob_onload(){
controls=window.open("VControls.html","c","scrollbars=yes,resizable=yes,widt
h=300,height=470,location=no");
// controls.init();
}
</SCRIPT>
inoltre questo e javascript,
l'init ad es del c:
void init( streambuf* psb );
o di java:
public void init();
..non funzionano ...
ci sono altri metodi con JS
per gestire le cose che vuoi fare con
quell'init ..
Ciao
PS:Sono di corsa, e mi scuso per gli
altri msg., rispondo appena mi libero,
anche al Galileo conta click! :)
--
Bye
Ro<*?*>berto

era davvero di fretta,
non mi ero accorto che ti serviva
chiamare una funzione della
nuova finestra, sorry!
il metodo è giusto:
controls.init();
ma sono sbagliati i tempi di chiamata,
la funzione a cui tu ti riferisci è disponibile
solo dopo che la pagina è stata caricata
(anzi per l'esattezza solo dopo che l'HEAD
è stato caricato!)
quindi si devono trovare dei modi per capire
quando questo avviene.
io in genere apro una pagina bianca[open("about:blank"...]
e poi ci scrivo tutto quello che mi serve dalle funzioni JScript
all'html (un esempio è su 
www.probo.it/javascript/esempi/bazz_data
 )
, oppure metto nell'evento onload della nuova pagina che si apre
una chiamata alla funzione che mi interessa (nel tuo caso
onload=init();) , ma se devi per forza comandare un evento
dal genitore, puoi provare con:
var controls;
onload = function Rob_onload(){
if(!controls || controls.closed)
controls=window.open("VControls.html","c","scrollbars=yes,resizable=yes,widt
h=300,height=470,location=no");
else {
if(controls.document.readyState=="complete")
controls.init();
else
setTimeout("Rob_onload()",100);
}
}
questo metodo (readyState)  funziona solo con IExplorer
e non con netscape, quidi ritengo sia giusto
seguire altre strade, .......
potrei suggerirti di provare un:
if(controls
&& controls.document
&& !controls.onload )
controls.onload=function nw_on_load(){init();};
else
setTimeout("Rob_onload()",500);
...
scusa per prima
--
Bye
Ro<*¿*>berto