2011-07-25 42 views
7

Tôi nhận được một ảnh được mã hóa Base64 từ một phương pháp. Và tôi thêm nó theo chương trình như là một src của một hình ảnh. Sau đó, tôi sử dụng plugin jQuery lightBox để hiển thị bản xem trước của hình ảnh. Trong Firefox và Chrome mọi thứ đều hoạt động tốt, nhưng trong Internet   Explorer   9 vì bản xem trước hình ảnh chỉ hiển thị một vài dòng hình ảnh của tôi.'dữ liệu: hình ảnh/jpg; base64' và xem trước hình ảnh jQuery trong Internet Explorer

Vì vậy, hình ảnh không được hiển thị toàn bộ; nó chỉ hiển thị một phần nhỏ của nó. Những người còn lại biến mất, và có vẻ như có thứ gì đó đã ngừng tải nó vào một lúc nào đó. Base64 là tốt, trong các trình duyệt web khác toàn bộ hình ảnh xuất hiện, và chỉ có vấn đề với Internet   Explorer.

Trong aspx của tôi:

<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> 

Trong file aspx.cs của tôi:

Vì vậy, tôi chèn một cái gì đó như thế này vào file aspx:

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

Làm thế nào để sửa đổi nó để làm việc với Internet   Explorer?

+4

IE8 chỉ có thể hỗ trợ lên đến 32KB của dữ liệu hình ảnh, mặc dù IE9 nên ok. Bạn có chắc là bạn không có bản sao dữ liệu bị lỗi trong bộ nhớ cache bằng cách nào đó không? –

+0

Bạn có trang thử nghiệm công khai không? Sử dụng bảng điều khiển Công cụ dành cho nhà phát triển F12, kiểm tra thuộc tính SRC của hình ảnh được đề cập. URL hình ảnh * đầy đủ có xuất hiện ở đó không? – EricLaw

+0

@adam. Có, tôi chắc chắn - cùng một hình ảnh với Firefox và Chrome hiển thị ok. – madMax

Trả lời

0

Tôi đã gặp sự cố như thế này. Lý do chính cho sự không tương thích này là thuộc tính runat="server" trong thẻ hình ảnh và có thể trong thẻ liên kết. Hãy thử điều này, có lẽ vấn đề của bạn sẽ được giải quyết:

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

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

Và trong code behind:

... 
string innerHtml = "<div id='gallery'><a id='aPhoto'><img alt='photo' id='imgPhoto' /></a></div>"; 
mainDiv.innerHtml = innerHtml; 
... 
Các vấn đề liên quan