[javascript] visibilità di un array in più file js [risolto]
Ciao a tutti, ci sono di nuovo
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
grazie per qualsiasi risposta

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

Risposte
Dovrebbe essere visibile.... l'array come l'hai dichiarato?
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.

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
Poi includi i due js che ti sei creato e
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?
Ovvero è diverso per il browser vedere questo:
da questo?
se non ricordo male si in quanto il contenuto viene interpretato man mano che, passami il termine, viene "letto"

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.
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.
Si ma allora la situazione era differente da quella che hai descritto nel primo post....
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

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