Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么图像加载不起作用_Javascript - Fatal编程技术网

Javascript 为什么图像加载不起作用

Javascript 为什么图像加载不起作用,javascript,Javascript,我意识到这是新手javascript程序员经常问的问题,我也是。Console.log(img)和Console.log(“onload之前”)执行正确,但我从未看到图像加载消息 AssetManager.loadImages = function(urls) { var images = []; var urlCount = urls.length; for (var i=0; i<urlCount; i++) { var img = new Image()

我意识到这是新手javascript程序员经常问的问题,我也是。Console.log(img)和Console.log(“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];
   }
}
AssetManager.loadImages=函数(URL){
var图像=[];
var urlCount=url.length;

对于(var i=0;iTry
var img=document.createElement(“img”);

AssetManager.loadImages=函数(URL){
var images=新数组();
var urlCount=url.length;
var urlsoladed=0;
莱姆格变种;
for(变量i=0;i=urlCount){
//回调(图像);-->这仍然是balls
}
}
leImg.src=url[i];
_图像推送(leImg);
}
}

(未经测试,并且喝醉了)

我不确定您的代码到底有什么问题,但这里有一些我不久前编写的代码来处理相同的问题(fiddle:)其中有些额外的东西可能是不必要的:)

对于良好的测量加载倍数:

$.preloadImgs = function (urls, callback, to_len) {
    var i = 0, c = 0;
    for (; i < urls.length; i++) {
        c++;
        $.preloadImg(urls[i], function (url, timedout) {
            if (--c === 0 && i >= urls.length - 1)
                callback.call(this, urls);
        }, to_len);
    }
};
$.preloimgs=函数(URL、回调、到){
变量i=0,c=0;
对于(;i=url.length-1)
callback.call(this,url);
},to_len);
}
};
当嵌套函数中的调用无法正常工作时,您可以尝试通过
addEventListener
而不是
onload=
您需要在“$().ready(function(){}”或“window.onload=function(){}”中显式调用“img.onload”函数

e、 g


对于任何和我犯同样错误的人,请确保onload是小写的,而不是驼峰大小写:onload

这好:

img.onload = function () { };
这很糟糕:

img.onLoad = function () { };

这可能是一个明显的问题,但您确定图像存在吗?请尝试添加
img.onerror=function(){console.log(“图像失败!”);};
哪个浏览器这是在中发生的吗?我猜这是因为图像已经加载并且正在从浏览器缓存中获取。我想我以前见过这种情况。如果浏览器缓存了图像元素,则不会发生图像元素的
加载
事件。如果要确保它始终捕获图像,可以添加类似
”的内容(新日期())。getTime()
到URL@ogc-尼克:是的,他们有。但只有当他们没有被缓存时,原始问题中有jQuery吗?没有,在哪里。很高兴你花了时间参与;)这可能是一个明显的问题,但你确定图像存在吗?尝试添加img.onerror=function(){console.log(“Image failed!”);};我不想承认这一点,但这是所有回答中的赢家。我一定是弄乱了路径。设置onload后始终设置src,否则您将获得缓存图像的比赛条件
$().ready (function(){ 

 var img = new Image();
 img.src = 'image.png';
 img.onload = function()
 {
  console.log("loaded");
 }
}
img.onload = function () { };
img.onLoad = function () { };