[javascript] visibilità di un array in più file js [risolto]

Blackorgasm
Ciao a tutti, ci sono di nuovo :D
Oggi ho questo problema: praticamente ho due file js, in uno viene creato un array ed inseriti al suo interno dei valori presi da una form, in un altro invece devo "vedere" questo array per poterne leggere gli elementi, purtroppo questo non accade; questi due file js sono chiamati all'interno di un file html, uno sopra l'altro (il file js che scrive l'array è sopra il file che lo deve leggere). La definizione dell'array (per comodità chiamiamolo pure x), è all'interno del primo file js, ma fuori da ogni funzione, quindi in teoria anche il secondo file js dovrebbe vederlo o no? Forse la definizione di x va fatta all'interno del codice html?

Spero di essermi fatto capire :-D grazie per qualsiasi risposta

Risposte
gundamrx91-votailprof
Dovrebbe essere visibile.... l'array come l'hai dichiarato?

Blackorgasm
l'array è dichiarato nel primo file javascript fuori da ogni funzione, in modo che sia visibile a tutti gli altri file javascript che si trovano nella stessa pagina html, ma gli altri file non me lo vedono :( postare lo script è impossibile perché è su più file js.

gundamrx91-votailprof
Prova allora a dichiarare l'array direttamente nel codice html all'interno di una sezione prima della sezione .
Poi includi i due js che ti sei creato e

Blackorgasm
ok domani provo, a quest'ora potrei fare solo confusione XD comunque avevo pensato ad un errore nella disposizione dei file js all'interno dell'head, può essere?
Ovvero è diverso per il browser vedere questo:





da questo?




gundamrx91-votailprof
se non ricordo male si in quanto il contenuto viene interpretato man mano che, passami il termine, viene "letto" :-D

Blackorgasm
ok ci sono riuscito, è stato più difficile di quello che credevo.
Essenzialmente la finestra madre genera una finestra figlio ed entrambe condividono uno stesso script; l'array viene creato da entrambe le finestre ma probabilmente in zone di memoria diverse, quindi una volta "ucciso" il figlio veniva ucciso anche l'array, ed alla finestra madre (che nel frattempo aveva creato l'array in un'altra zona di memoria), risultava un array vuoto. Si tratta di aggiungere allo script una riga di codice con l'operatore 'opener', che restituisce dal figlio alla madre un qualsiasi oggetto, quindi si da un attributo alla finestra madre proprio col valore dell'array (riempito dal figlio); quindi anche se il figlio viene chiuso l'array rimane :)

Spero che in futuro serva a qualcuno visto che su internet non si trova quasi nulla.

gundamrx91-votailprof
Si ma allora la situazione era differente da quella che hai descritto nel primo post....

Blackorgasm
la situazione è la stessa, infatti ci sono due file javascript, ma solo uno è a comune coi due file html. In questo file comune c'è la definizione dell'array; quando i due file html vengono aperti aprono due 'istanze' differenti dello stesso script, e questo io non lo sapevo, effettivamente creavano (con lo stesso nome) due array in due zone diverse della memoria. Che disastro :)

gundamrx91-votailprof
Si, ma avevo capito che l'html era uno solo, altrimenti sarebbe stato chiaro che il problema era di condivisione ;-)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.