Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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图像预加载时出现404错误_Javascript_Jquery - Fatal编程技术网

Javascript图像预加载时出现404错误

Javascript图像预加载时出现404错误,javascript,jquery,Javascript,Jquery,我试图在这里预装一些图片。但我需要的是在数组中预加载一些图像,并显示进度 这是可行的,但它给了我控制台中的GET 404(未找到)。但它起作用了。我该如何避免此警告 谢谢 function start(id) { var images = new Array(); images[0] = "http://www.travelblog.org/Wallpaper/pix/tb_fiji_sunset_wallpaper.jpg"; images[1] = "http://w

我试图在这里预装一些图片。但我需要的是在数组中预加载一些图像,并显示进度

这是可行的,但它给了我控制台中的GET 404(未找到)。但它起作用了。我该如何避免此警告

谢谢

function start(id) {
    var images = new Array();
    images[0] = "http://www.travelblog.org/Wallpaper/pix/tb_fiji_sunset_wallpaper.jpg";
    images[1] = "http://www.fantasy-and-art.com/wp-content/gallery/abstract-wallpapers/lion_hd_wallpaper.jpg";
    images[2] = "http://hidefwallpaper.org/wp-content/gallery/1_apple_wallpaper_02/90831582ea8e018759044f2820b518d1.jpg";
    imageObj = new Image();
    imageObj.src = images[id];
    imageObj.onload = function() {
        if (id == images.length) {
            alert('Carregou tudo');
        }
        if (id < images.length) {
            start(id + 1);
            alert(id);
        }
    }
}
start(0);​
功能启动(id){
var images=新数组();
图像[0]=”http://www.travelblog.org/Wallpaper/pix/tb_fiji_sunset_wallpaper.jpg";
图像[1]=”http://www.fantasy-and-art.com/wp-content/gallery/abstract-wallpapers/lion_hd_wallpaper.jpg";
图像[2]=”http://hidefwallpaper.org/wp-content/gallery/1_apple_wallpaper_02/90831582ea8e018759044f2820b518d1.jpg";
imageObj=新图像();
imageObj.src=图像[id];
imageObj.onload=函数(){
if(id==images.length){
警报(“卡雷古-图多”);
}
if(id
首先设置图像数组。。。 那么

for(var i=0;i
您对start函数的递归调用执行了太多次,这就是为什么您会收到404消息,因为没有索引等于数组长度的数组元素。数组是基于零的。例如,当您在id为2时调用if(id时,您将id增加到3,然后再次调用start,但是没有图像[3]

试试这个:

var images = new Array();
images[0] = "http://www.travelblog.org/Wallpaper/pix/tb_fiji_sunset_wallpaper.jpg";
images[1] = "http://www.fantasy-and-art.com/wp-content/gallery/abstract-wallpapers/lion_hd_wallpaper.jpg";
images[2] = "http://hidefwallpaper.org/wp-content/gallery/1_apple_wallpaper_02/90831582ea8e018759044f2820b518d1.jpg";

function start(id) {
    imageObj = new Image();
    imageObj.src = images[id];
    imageObj.onload = function() {
        if (id == images.length) {
            console.log('Carregou tudo');
        }
        if (id < (images.length-1)) {
            start(id + 1);
        }
    }
}
start(0);​
var images=newarray();
图像[0]=”http://www.travelblog.org/Wallpaper/pix/tb_fiji_sunset_wallpaper.jpg";
图像[1]=”http://www.fantasy-and-art.com/wp-content/gallery/abstract-wallpapers/lion_hd_wallpaper.jpg";
图像[2]=”http://hidefwallpaper.org/wp-content/gallery/1_apple_wallpaper_02/90831582ea8e018759044f2820b518d1.jpg";
功能启动(id){
imageObj=新图像();
imageObj.src=图像[id];
imageObj.onload=函数(){
if(id==images.length){
console.log('Carregou tudo');
}
如果(id<(图像长度-1)){
启动(id+1);
}
}
}
启动(0);​

在设置src之前,请确保绑定了onload事件。它不会解决此问题,但会允许缓存的图像在IE中正常工作。为什么每次都要通过函数构建数组?将该块放在函数之外难道没有意义吗?@j08691有意义。我更新了代码。@MarkLinus没有工作过.同样的问题。@KevinB是的,但我的首要任务是修复警告。显然,替换imageObj=new Image()直到函数结束。Start now不需要任何参数。它将加载所有参数,并在第三个参数准备好后发出警报。您还可以保留计数器,并在计数器达到images.length时发出警报,这样您就知道当加载所有图像时,此.id将永远不等于images.length,例如,id为0,1,2,且长度将为3.哦,对了,这是一个愚蠢但无关紧要的错误。替换为length-1和good-to-go&另外,这是在触发onload函数时设置为object的。是的,我尝试了你的代码,它给了我一个未知的语法错误:意外的标记非法,当你把它放在你的站点中时不工作,或者在jsFiddle中不工作?不。图像长度iS3.并且您的代码指向id是否与ans图像长度相同。我修改了,它成功了:。非常感谢,伙计!:)我只是从您的原始代码中保留了它。我不知道您需要它做什么,无论您学会如何使用示例并修改它,我都很好。
var images = new Array();
images[0] = "http://www.travelblog.org/Wallpaper/pix/tb_fiji_sunset_wallpaper.jpg";
images[1] = "http://www.fantasy-and-art.com/wp-content/gallery/abstract-wallpapers/lion_hd_wallpaper.jpg";
images[2] = "http://hidefwallpaper.org/wp-content/gallery/1_apple_wallpaper_02/90831582ea8e018759044f2820b518d1.jpg";

function start(id) {
    imageObj = new Image();
    imageObj.src = images[id];
    imageObj.onload = function() {
        if (id == images.length) {
            console.log('Carregou tudo');
        }
        if (id < (images.length-1)) {
            start(id + 1);
        }
    }
}
start(0);​