Установка источника изображения через Javascript ненадежна в Internet Explorer - PullRequest
1 голос
/ 02 ноября 2011

Я просто пытаюсь изменить атрибут SRC изображения с помощью javascript следующим образом:

document.getElementById('fooImage').src = img;

Где img - это переменная, которая имеет ссылку на файл.

Во всех других браузерах (Chrome, Firefox, Safari) это работает.В IE (7+) это тоже работает иногда .

Используя встроенные в IE инструменты разработчика, я вижу, что тег SRC изображения установлен,Есть ли в окне локальных файлов что-то еще, что могло бы помочь мне отладить, почему изображение на самом деле не отображается на экране?

Я также пытался использовать jQuery для того же результата:

$("#fooImage").attr("src", img);

А идеи?

Ответы [ 4 ]

0 голосов
/ 23 декабря 2018

Я обнаружил, что с IE9 после изменения image.src с

var strVar="C:Users/x/Desktop/caution.png" image.src=strVar

и вызывая оповещение (image.src), я получаю что-то вроде этого в окне оповещения:

Файл: /// C: Users / х / Desktop / "C: Users / х / Desktop / caution.png"

Итак, я попытался image.src=strVar.replace(/\"/g,"") удалить qoutemarks и это сработало! предупреждение (image.src)

Файл: /// C: Users / х / Desktop / caution.png

0 голосов
/ 20 сентября 2013

Учитывая, что он работает в других браузерах, при поиске по этой теме часто кажется, что проблема в том, как IE кеширует изображения (см. Комментарий Epascarello).Ваш код такой же, как у меня - он отлично работает, кроме IE10.

0 голосов
/ 04 октября 2013

Я тоже столкнулся с этой загадкой. Затем обнаружил, что он работает в «Page Inspector», поэтому после некоторых копаний обнаружил, что (в Internet Explorer), перейдя в Tools.Internet Options.Advanced снимите флажок «Отключить отладку сценариев (Internet Explorer)» и тот, что под ним.

0 голосов
/ 04 декабря 2011

При отладке этого я сначала жестко запрограммировал бы его ...

document.getElementById('fooImage').src = "myimage.png";

Я использовал следующее на своем веб-сайте, и он работает следующим образом ...

var imgCounter = document.getElementById('formtimer');
imgCounter.src = "graphics/odometers/1.png";

Проверьте еще кое-что:

  1. Убедитесь, что ваш идентификатор = тег находится не в разделе <DIV, а в разделе <IMG ... например<div class="style1"><img src="yourpicture" id="someid">.Если `id = 'someid' находится в теге div, вы не можете изменить картинку / картинка не будет отображаться.

  2. вы используетеwindow.onload ?, загрузка тела?правильный способ использования первого: ..

     window.onload = function () { YourFunctionHere(); };
    
  3. Попробуйте другое тестовое изображение.В прошлом у меня были проблемы с отображением png, я изменил его на gif или jpg, и это сработало.Я не понимаю, как это было «назад», но это больше не проблема, но эй ... что-то попробовать.

  4. попробуйте полный URL

  5. с использованием https?

  6. попробуйте вставить изображение в другое место в вашей программе и посмотреть, что произойдет.

  7. попробуйте добавить это в свой HTML (поместите свой сайт вместо моего - посмотрите BASE href на Google для получения дополнительной информации)

    <BASE href="http://perrycs/" />
    
  8. Убедитесь, что изображение не скрыто заслой (я знаю, что он работает в некоторых браузерах)

  9. сообщите нам веб-сайт, чтобы мы могли проверить его и получить больше информации, чтобы помочь вам в отладке, видя, что контекст (окружающий код) помогает...

...