“data:image / jpg; base64”和Internet Explorer中的jQuery图像预览

时间:2011-07-25 18:12:58

标签: jquery asp.net uri internet-explorer-9

我从方法中获得了Base64编码的照片。我以编程方式将其添加为图像的src。然后我使用jQuery lightBox插件来显示图像的预览。在Firefox和Chrome中,一切正常,但在Internet Explorer 9中,因为图像预览仅显示我的图像的几行。

因此图像不会显示为整体;它只显示了一小部分。其余的消失了,看起来某些东西在某个时刻停止加载它。 Base64很好,在其他Web浏览器中显示整个图像,并且只有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文件中:

imgPhoto.Attributes.Add("src", "data:image/jpg;base64," + base64Image);

所以我将这样的内容插入到aspx文件中:

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

如何修改它以使用Internet Explorer?

1 个答案:

答案 0 :(得分:0)

我已经有这样的问题。这种不兼容性的主要原因是图像标记中的runat="server"属性,也可能是锚标记中的<script type="text/javascript"> $(function () { $('#gallery a').lightBox({ fixedNavigation: true }); }); </script> <div id="mainDiv" runat="server"> </div> 属性。试试这个,也许你的问题将会解决:

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

code behind

{{1}}