2011-07-25 49 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; 
...