2011-07-25 24 views
7

我从一个方法得到一个Base64编码照片。我以编程方式将其添加为图像的src。然后,我使用一个jQuery lightBox插件来显示图像的预览。在Firefox和Chrome中一切正常,但在互联网 资源管理器  9作为图像预览只显示我的图像的几行。'data:image/jpg; base64'和Internet Explorer中的jQuery图像预览

因此,图像不能作为一个整体显示;它只显示一小部分。其余的消失了,看起来好像有什么东西在某个时刻停止加载它。 Base64很好,在其他网络浏览器中出现整个图像,并且只有Internet   Explorer出现问题。

在我的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> 

在我的aspx.cs文件:

所以我插入这样的事情到aspx文件:

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

我如何修改它与Internet   Explorer一起使用?

+4

IE8只能支持最多图像32KB的数据,虽然IE9应该没问题。你确定你没有得到缓存中的数据副本吗? –

+0

你有公开测试页吗?使用F12 Developer Tools控制台,检查有问题的图像的SRC属性。那里有* full *图片网址吗? – EricLaw

+0

@adam。是的,我确定 - 与Firefox和Chrome相同的图像显示正常。 – madMax

回答

0

我已经有这样的问题了。造成这种不兼容性的主要原因是图像标签中的runat="server"属性以及可能位于锚标签中。试试这个,也许你的问题将得到解决:

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

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

而且在code behind

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