Вы должны быть уверены, что изображение успешно загружено, прежде чем вы получите доступ к его height
и width
атрибутам измерения.
Это может быть достигнуто путем добавления обработчика load
к вашему img
элемент. Примечание : необходимо добавить прослушиватель событий перед установкой атрибута src
, чтобы гарантировать, что обработчик загрузки будет вызываться после начала загрузки изображения.
Другая характеристика события load
как показано ниже, это событие будет вызываться каждый раз, когда элемент img
успешно загружает изображение.Поэтому вы можете динамически изменять атрибут src
в img, что вызовет тот же самый обработчик события load
:
var myImg = document.getElementById("myImg");
// Add event listener before setting src attribute
myImg.addEventListener('load', function() {
console.log(myImg.height); // 0 (Expected : 200)
})
// This code is added to show how the load event handler
// is still called even when images are switched dynamically
setInterval(function() {
if(Math.random() > 0.5) {
myImg.src = "http://lorempicsum.com/rio/350/200/1";
}
else {
myImg.src = "https://lorempicsum.com/rio/350/200/2"
}
console.log(myImg.src)
}, 2000)
<img src="" alt="" id="myImg">