Предварительный просмотр данных: image / jpg; base64 'и jQuery в Internet Explorer - PullRequest
7 голосов
/ 25 июля 2011

Я получаю кодированное фото Base64 из метода.И я добавляю это программно как источник изображения.Затем я использую плагин jQuery lightBox , чтобы показать предварительный просмотр изображения.В Firefox и Chrome все работает нормально, но в Internet Explorer 9 в качестве предварительного просмотра изображения отображаются только несколько строк моего изображения.

Таким образом, изображение не отображается целиком;это показывает только небольшой процент этого.Остальные исчезли, и похоже, что-то перестало загружать его в какой-то момент.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:

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 голосов
/ 25 июля 2012

У меня уже есть такая проблема.Основной причиной этой несовместимости является атрибут 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;
...
...