new Image(), как узнать, загружено ли изображение на 100% или нет?
Я создаю новое изображение, используя
img = new Image();
img.src = image_url;
Затем я назначаю img.src для src тега img в DOM
$("#my_img").attr("src", img.src);
Как я могу узнать, что img.src загружен на 100%? Какова лучшая практика?img.complete
кажутся мне немного глючными в некоторых браузерах.
Итак, другими словами, мне нужно назначить img.src
в $("#my_img")
только после img
он был загружен на 100%.
Спасибо!
2 ответа
Решение
Использовать load
событие:
img = new Image();
img.onload = function(){
// image has been loaded
};
img.src = image_url;
Также посмотрите на:
Используя шаблон Promise:
function getImage(url){
return new Promise(function(resolve, reject){
var img = new Image()
img.onload = function(){
resolve(url)
}
img.onerror = function(){
reject(url)
}
img.src = url
})
}
И при вызове функции мы можем аккуратно обработать ее ответ или ошибку.
getImage('imgUrl').then(function(successUrl){
//do stufff
}).catch(function(errorUrl){
//do stuff
})