2011-07-25 6 views
7

Obtengo una foto codificada Base64 de un método. Y lo agrego programáticamente como un src de una imagen. Luego uso el plugin jQuery lightBox para mostrar una vista previa de una imagen. En Firefox y Chrome todo funciona bien, pero en Internet   Explorer   9 como una vista previa de la imagen muestra solo unas pocas líneas de mi imagen.'data: image/jpg; base64' y vista previa de la imagen jQuery en Internet Explorer

De modo que la imagen no se muestra como un todo; solo muestra un pequeño porcentaje. El resto desapareció, y parece que algo dejó de cargarlo en algún momento. El Base64 está bien, en otros navegadores web aparece toda la imagen, y solo hay problemas con Internet   Explorer.

En mi aspx:

<script type="text/javascript"> 
    $(function() { 
     $('#gallery a').lightBox({ fixedNavigation: true }); 
    }); 
</script> 

<div id="gallery"> 
    <a id="aPhoto" runat="server"> 
     <img alt="photo" id="imgPhoto" runat="server" /></a> 
</div> 

En mi archivo aspx.cs:

Así que insertar algo como esto en el archivo aspx:

imgPhoto.Attributes.Add("src", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="); 

Cómo hacer yo modificarlo para que funcione con Internet   Explorer?

+4

IE8 sólo puede soportar hasta 32 KB de datos de imagen, aunque IE9 debería estar bien. ¿Estás seguro de que no tienes una copia fallida de los datos en el caché de alguna manera? –

+0

¿Tiene una página de prueba pública? Usando la consola F12 Developer Tools, examine el atributo SRC de la imagen en cuestión. ¿La URL de la imagen * full * está presente allí? – EricLaw

+0

@adam. Sí, estoy seguro: la misma imagen con Firefox y Chrome se muestra bien. – madMax

Respuesta

0

Ya tengo un problema como este. La razón principal de esta incompatibilidad es el atributo runat="server" en la etiqueta de la imagen y tal vez en la etiqueta de anclaje. Prueba de esto, tal vez su problema será resuelto:

<script type="text/javascript"> 
    $(function() { 
     $('#gallery a').lightBox({ fixedNavigation: true }); 
    }); 
</script> 

<div id="mainDiv" runat="server"> 
</div> 

Y en code behind:

... 
string innerHtml = "<div id='gallery'><a id='aPhoto'><img alt='photo' id='imgPhoto' /></a></div>"; 
mainDiv.innerHtml = innerHtml; 
... 
Cuestiones relacionadas