Newsgroup: it.comp.lang.javascript
Titolo: scope JS con CreateXmlHttpReq

Ho avuto modo di notare che codici JS richiamati in un file esterno 
(esterno.html) dalla pagina in cui sono utilizzati (default.html), devono 
fare riferimento a funzioni dichiarate nel file di partenza (default.html).
In pratica le funzioni generali che dichiaro in esterno.html è come se non 
esistessero; devo definirle in default.html.
Qualcuno può cortesemente illuminarmi ?
devo sempre dichiarare tutte le funzioni nel file principale di partenza ?
grazie 

 Qualcuno può cortesemente illuminarmi ?
Mi sa che (a meno che qualcuno non capisca) devi illuminarci te :-)
-- 
"Run rabbit run
 dig that hole, forget the sun
 and when at last the work is done
 don't sit down, it's time to dig another one"
									    P.F.

Eder ha scritto:

visto che parli di XMLHttpRequest, dovresti chiarire la maniera in cui
richiami il file esterno.html
in ogni caso, lo scope delle variabili e' l'oggetto window nel quale sono
dichiarate. Si puo' accedere a variabili definite in altre finestre ammesso
che risiedano nello stesso dominio e sia disponibile un riferimento alla
finestra (es. madre-figlia, iframe, etc.)
-- 
Increased cost of life? Eat plasma panels!

ho notato che se dichiaro una funzione js nell'<head> di un file figlio 
chiamato con CreateXmlHttpReq da un file padre (che quindi agisce su una 
parte della pagina padre),
la funzione non viene considerata nemmeno di striscio dal file figlio: devo 
dichiararla nel file padre.
E' cosě ? 

 E' cosě ?
Boh, si fosse capito qualcosa :(

 E' così ?
Stai facendo decisamente confusione. Premesso che roba come "file
figlio" e "file padre" sarebbero concetti da eliminare (in quanto
non hanno senso in questo contesto); il problema sta a monte:
Una chiamata XmlHttpRequest, fa una richiesta al server. Cosa poi
succede dopo, e cosa eventualmente ne fai del risultato di cotale
richiesta, dipende da te.
Metti caso che il risultato consiste in del testo che rappresenta
del codice HTML. Okay. Tu ottieni questo. Del testo. Una stringa.
Cosa ci vuoi fare? Aggiungerla nel DOM del documento corrente? In
tal caso ci sono diversi modi per farlo. Uno di questi è l'uso di
"innerHTML". Ma, ed è risaputo, se fai l'innerHTML di una stringa
dov'è presente un tag <script>, questo non viene "valutato" dallo
script engine (tale comportamento può anche dipendere dal browser
comunque). Quindi se dichiari una funzione in questo modo, non te
la "ritroverai".
Eventuali soluzioni:
- l'uso delle DOM API al posto dell'innerHTML
- "parserizzare" la stringa prima assegnarla tramite innerHTML, e
nel caso si trovino tag "script" eseguirne il contenuto tramte un
"eval()".
Alcuni framework fanno così.
Personalmente preferisco evitare questo genere di cose. Se già si
dovrebbe separare forma, contenuto e comportamento nello scrivere
una pagina HTML normale, figuriamoci quando si sviluppa con XHR.
Se cerchi su google, o negli archivi di questo NG, troverai altre
informazioni in merito comunque.
-- 
~  "FINARMENTE  LI SFRATTATI AVRANNO UN TETTO SULLA  TESTA!
 ...però tirato ammodino, un  tegolo pe' vorta.." (Il vernacoliere)

 informazioni in merito comunque.
Grazie mille adesso googlo 

Sfrutto l'onLoad di un pixel trasparente per eseguire tutte le funzioni 
presenti nel file origine e per dichiararne di nuove.
Grazie ancora 

 Grazie mille adesso googlo
Spero che ti aiuti anche a farti un po' più di chiarezza; temo che tu
abbia le idee un po' confuse su un paio di concetti di base, sul modo
di sviluppare tramite XmlHttpRequest.
Ad ogni modo, se hai dubbi, chiedi.
-- 
~  "Nei  film americani, qualsiasi problema che  venga considerato
 sufficientemente catastrofico, puo' essere risolto facendo esplodere
uno o piu' ordigni nucleari" (ZER0  & Cosimo)