Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/09/2011, 10:15
refreegrata
 
Fecha de Ingreso: agosto-2008
Mensajes: 198
Antigüedad: 15 años, 9 meses
Puntos: 27
Respuesta: porque no me funciona bien esta funcion js

El código que han posteado sirve como base, pero con eso tú ya deberías ser capaz de alterar el código para hacer lo que quieres. Podrías declarar algunas variables globales y jugar con eso:

Código:
var procesamiento, xml = null, contador=0;
function MostrarRegistro() {
        try {
                document.getElementById("registro").innerHTML ='<p>'+ xml.getElementsByTagName('nombre')[contador].firstChild.nodeValue+'</p>';
                contador ++;
        }
        catch(e) {
                //Y aqui se reiniciaría, o podrías detener detener el ciclo infinito u otra cosa
                document.getElementById("registro").innerHTML = '';
                contador = 0;
        }
}

function MostarNombres() {
        var ajax = objetoAjax();
        ajax.open('get','archivo.xml');
        ajax.onreadystatechange = function() {
                if(ajax.readyState == 4){
                        if(ajax.status == 200) {
                                xml=ajax.responseXML;
                                if(xml.getElementsByTagName('nombre').length > 0)
                                        procesamiento = window.setInterval(MostrarRegistro, 4000);
                        }
                }
        }
        ajax.send(null);
}
....
Otra cosa sería si piensas que los datos a devolver van a cambiar y por tanto quieres actualizar cada cierto tiempo la variable XML volviendo a consultar o algo así.

El último código que posteaste no te funcionará por que que deseas crear y ejecutar javascript directamente desde el archivo al que llamas con open. Todo tu javascript debería estar en el fichero js vinculado al archivo html principal. De otra forma tendrías que valerte de trucos poco trasparentes , que no son necesarios para resolver la problemática que te aqueja. Te recomiendo leer un poco más de Ajax.

Saludos.

Saludos