Javascript: передача функции в качестве аргумента
Я хочу загрузить изображение по умолчанию, если изображение не загружается. Я также хочу вызвать getLoadComplete() после загрузки изображения. Как передать функцию this.getLoadComplete() в функцию, вызываемую в img.onerror?
Вот код, который я получил:
img.onload = this.getLoadComplete();
img.onerror = function(){
img.src = "http://xxxx.com/image.gif";
}
img.src = request.url;
2 ответа
Решение
img.onload = this.getLoadComplete();
Вы вызываете getLoadComplete()
немедленно, и присваивая его возвращаемое значение img.onload
, Вы, вероятно, хотите это:
img.onload = this.getLoadComplete;
То есть установить img.onload
самой функции, а не ее возвращаемое значение.
Вам не нужно делать ничего особенного в onerror
; onload
обработчик по- прежнему будет установлен в getLoadComplete
и когда вы изменяете src
в вашем onerror
обработчик, он будет вызывать onload
после загрузки резервного изображения.
Вам просто нужно вызвать функцию.
img.onload = this.getLoadComplete();
img.onerror = function(){
img.src = "http://www.3d-maps-minus-3d.com/img/unavailable.gif";
this.getLoadComplete();
}