Comunidad de diseño web y desarrollo en internet online

Ayuda con preloader Ajax

Citar            
MensajeEscrito el 19 Sep 2007 01:18 am
Hola a todos, este es mi primer post y espero que me sirvais de ayuda.
He estado siguiendo el tutorial que aparece en esta página de ajax preloader y lo he adpatado para que muestre un gif que tapa toda la pagina hasta que ésta se termina de cargar y entonces cambio la visibilidad de la capa de ese gif a nula para que se muestre la página.
Éste es el codigo:

Código :

function loadPreloader(url) {
var preloader;
preloader = document.getElementById('preloader');
//creamos el objeto XMLHttpRequest
        ajax=NuevoAjax(); 
        //peticionamos los datos, le damos la url enviada desde el link
        ajax.open("GET", url,true); 
        ajax.onreadystatechange=function(){
                if(ajax.readyState==4){
                        if(ajax.status==200){
                                //ocultamos la capa preloader
                                preloader.style.visibility = 'hidden';
                        }else if(ajax.status==404){
                                preloader.innerHTML = "La página no existe";
                        }else{
                                //mostramos el posible error
                                preloader.innerHTML = "Error:".ajax.status; 
                        }
                }
        }
        ajax.send(null);
}

A esta funcion la llamo desde body onload, con lo cual estoy mostrando una imagen de cargando que tapa toda mi página hasta que esta se carga. Desapareciendo el cargando y quedando a la vista toda la página perfectamente cargada.
Pues bien resulta que esto funciona genial para todos los casos en IE, pero hay un problema en firefox:
En mi página hay una capa que se carga desde css y que contiene una imagen pesada que se carga como fondo (background), que es realmente por la cual he colocado el preloader.
Pues bien, si esa imagen estuviera colocada en la página mediante un img src, firefox no le daría al ajax.status el valor 200 hasta que no se hubiera cargado, pero al ser un fondo que se pasa mediante una capa css, ajax.status toma el valor 200 sin que este se haya cargado...
Estoy desesperado porque ya he probado de todo y como ya os he dicho, en IE funciona perfectamente, hasta que no se ha cargado el fondo no se retira el preloader, pero en firefox no...
¿Alguien puede ayudarme?
Muchas gracias a todos y perdón por el ladrillo...

Por zlatitan

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Sep 2007 12:43 am
Up

Por zlatitan

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.