ciao a tutti, volevo capire una cosa su questo codice:

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);
        }
        
    }
La funzione prende rispettivamente come argomenti un riferimento all'oggetto document, un elemento e un attributo ad es.
codice:
getElements(document, 'a', 'href');
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:
...
        array_elements = this_doc.getElementsByTagName(element);       
        alert("qualsiasi cosa");
        for (i=0; i<array_elements.length; i++) {
...
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.

- 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

codice:
do  {
 array_elements = this_doc.getElementsByTagName(element);  
while (array_elements == undefined)
ma niente.


Qualcuno ha idea di come risolvere questo problema?

Ciao