ciao a tutti, volevo capire una cosa su questo codice:
La funzione prende rispettivamente come argomenti un riferimento all'oggetto document, un elemento e un attributo ad es.codice:function getElements(doc, element, attribute) { this_doc = doc; array_elements = this_doc.getElementsByTagName(element); for (i=0; i<array_elements.length; i++) { this_element = eval("array_elements["+i+"]."+attribute); alert(this_element); } }
mi consente di vedere quanti links sono presenti nella pagina. Il problema è che il codice non fa l'alert dei vari link (ce ne sono cinque) a meno che non metta un qualsiasi alert subito prima del ciclo for, cioè cosìcodice:getElements(document, 'a', 'href');
Ovvero sembra che quando faccio la scansione dell'array degi elementi l'istruzione precedente non sia - per così dire - terminata probabilmente per via del fatto che in js le istruzioni sono asincrone.codice:... array_elements = this_doc.getElementsByTagName(element); alert("qualsiasi cosa"); for (i=0; i<array_elements.length; i++) { ...
- Ho provato a costruire una funzione che faccia una pausa al posto dell'alert ma il problema non si risolve.
- Ho provato a usare un costrutto del tipo
ma niente.codice:do { array_elements = this_doc.getElementsByTagName(element); while (array_elements == undefined)
Qualcuno ha idea di come risolvere questo problema?
Ciao
![]()

Rispondi quotando