我意识到这是一个常见的问题,由新手javascript程序员问我。 Console.log(img)和console.log(“onload”之前)执行正确,但我从来没有看到图像加载消息。为什么图像onload不起作用
AssetManager.loadImages = function(urls) {
var images = [];
var urlCount = urls.length;
for (var i=0; i<urlCount; i++) {
var img = new Image();
images.push(img);
}
var urlsLoaded = 0;
for (var i=0; i<urlCount; i++) {
(function(img) {
console.log(img);
console.log("before onload");
img.onload = function(e) {
console.log("Image Loaded!");
urlsLoaded++;
if (urlsLoaded >= urlCount) {
AssetManager.callback(images);
}
}
})(images[i]);
images[i].src = urls[i];
}
}
这可能是一个很明显的问题,但你确定图像存在吗?尝试添加'img.onerror = function(){console.log(“Image failed!”);};' –
哪个浏览器发生这种情况? – Spudley
我的猜测是,这是因为图像已经加载并正在从浏览器缓存中获取。我想我以前见过这个。 – Spudley