在为属性分配值之前添加事件侦听器。src
如果图像已经在浏览器的缓存中,load
事件可能会在src
属性设置后立即发生。
此外,请确保将对Image
对象的引用保存到在下载图像之前不会自动销毁的变量。例如,如果您Image
在函数内实例化一个对象并将对它的引用保存在函数局部变量中,则该对象可能会在函数执行完成后立即自动销毁。为了防止它,将对象的引用保存在全局变量或全局对象的属性中,如下所示:
window.example = {
_images: []
};
example.preloadImage = function(url, callback) {
var image = new Image;
image.onload = callback;
image.src = url;
// This prevents the image from destroying after the function is executed.
example._images.push(image);
};
example.preloadImage('some-image.jpg', function() {
alert('Image is loaded.');
});