Bug en Internet Explorer 7 y 8 con gif animados

En un proyecto que he realizado recientemente, he necesitado poner la típica imagen de “Cargando” mientras se realizaba una carga. El proceso es bastante simple. Sólo debes de poner un div oculto por defecto y mediante javascript muestras la capa, en dicha capa tenía un gif animado con una barra que se llena.

Lo que ocurre es que en todos los navegadores basados en FireFox funciona a la perfección pero ¿cual es mi sorpresa al usarlo en Internet Explorer 7 y 8? Una vez más no funciona. La razón que IE no anima un gif una vez se está enviando un formulario.

Después, de mucho guglear encuentro este post de Geek Rider.

Os dejo el código de C# (C sharp) y javascript:

Esta parte debe de estar entre las etiquetas Head de la página.

<script language="javascript" type="text/javascript">

//Función que muestra y oculta el DIV
function ToggleSubmenuNew(divsubmenu) 
{
    var divsub = document.getElementById(divsubmenu);
    
    if(divsub.style.display == 'none')
    {
        divsub.style.display = 'block';
        divsub.style.visibility = 'visible';
        divsub.style.background = 'url(./img/cargando.gif) no-repeat left top';        
        }
    else
        divsub.style.display = 'none';        
}
</script>

Este es el código para el div.

<div style='display:none;' id="DIV1" runat="server">
 <span style="color: #a00000">     
     <br /><br />Estamos subiendo su archivo a nuestro servidores.<br /> Por favor espere.
 </span>
</div>

Por último necesitamos que cuando pulsemos el botón se ejecute el código. En el Code Behind pondremos lo siguiente.

Boton1.Attributes.Add("onclick", "javascript:ToggleSubmenuNew('" + this.DIV1.ClientID + "');");

Esto hará que cuando pulsemos el Boton1 de nuestra página se ejecute el javascript, muestre nuestro gif animado como fondo del div y resuelto todos los problemas.

Os dejo una imagen de cargando por si lo queréis probar.

5 comentarios en “Bug en Internet Explorer 7 y 8 con gif animados

  1. Hola, probe tu código pero no me muestra nada. Actualmente estoy empleando un panel en AJAX, donde tengo cargado una imagen, esta anda en todos los browser menos en IE.

  2. Me pasó lo mismo en un proyecto .Net con Ajax, lo soluciones de todas todas, poniendo una pelicula flash. De esta forma conseguí que funcionase en todos los navegadores modernos.

Deja un comentario