Как я могу определить img ширину/высоту динамично загруженных изображений в IE?

Моя разметка является простым элементом отделения с идентификатором 'загрузка'. Используя jQuery я затем загружаю список элементов изображения в это отделение:

$('#load').load('images.html', { }, function() {
  $(this).onImagesLoad({
    selectorCallback: function() {
      ....do something....
    }
  });
});

где images.html является списком как это:



...

Чтобы гарантировать, что все изображения загружаются полностью, я использую onImagesLoad плагин. Это, до сих пор, работает просто великолепно на всех браузерах.

Однако на IE8 (и я принимаю другие версии IE также), когда я затем выполняю итерации по img элементам, я не могу определить ширину/высоту загруженных изображений. image.context.naturalWidth и атрибуты naturalHeight, кажется, не работают.

Как я овладеваю размером изображений?

Спасибо "куча" :)

Обновление

@Simon: Это не работало над IE и повредило другие браузеры также.

@Jenechka: Если "imageDomElement" является просто другим названием переменной "изображения" в моем примере выше, то это не работает. Или что Вы подразумеваете под тем DomElement?

6
задан Sampson 2 June 2010 в 23:34
поделиться

5 ответов

Если вы не изменяли размер изображения, вы можете использовать:

image.width()

и

image.height()
2
ответ дан 17 December 2019 в 18:10
поделиться
imageDomElement.width
imageDomElement.height

или попробуйте

imageDomElement.clientWidth
imageDomElement.clientHeight
0
ответ дан 17 December 2019 в 18:10
поделиться

Если вы играете с jquery, вам подойдет image.attr (width). Но почему бы вместо этого не использовать document.ready, чтобы избавиться от головной боли. .

0
ответ дан 17 December 2019 в 18:10
поделиться

Это очень похоже на другие ответы, но я протестировал его в IE7, так что это может быть ближе к тому, что вы хотите:

$(document).onImagesLoad({
  selectorCallback: function() {
      $('img').each(function(){
         alert($(this).width()+', '+$(this).height()); 
      });
  }
});

См. here, это может быть не совсем то, как вы его использовали, но я не знаком с этой вещью onImagesLoad.

1
ответ дан 17 December 2019 в 18:10
поделиться

Вместо этого используйте следующий код

$(document).onImagesLoad({
      selectorCallback: function() {
          $('img').each(function(){
             alert($(this)[0].clientWidth +', '+$(this)[0].clientHeight); 
          });
      }
    });
0
ответ дан 17 December 2019 в 18:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: