2

我想在加载图像时发现错误。不幸的是,我无法捕捉到它们,我在控制台中遇到这样的错误。

Failed to load resource file:///C:/Users/Ankur/Dropbox/Public/InteractiveGuide/Images/copyright_symbol.jpg

我同时使用了 try catch 块和 .onerror()。这是代码。

function preloadImages(arr)
{
    var newimages=[], loadedImages=0, dir="./Images/";
    var arr = (typeof arr!="object")?[arr]:arr;
    for(var i=0; i<arr.length; i++)
    {
        try
        {
            newimages[i]=new Image();
            newimages[i].src = dir+arr[i];
            newimages[i].onload = function()
            {
                loadedImages++;
                if(loadedImages==arr.length)
                {
                    iniScene();
                }
            }
            newimages.onerror = function()
            {
                console.log("Error loading image: "+arr[i]);
            }
        }
        catch(ex)
        {
            console.log("Image Loading Error: "+ex);
        }
    }
}

如何正确捕获错误?

4

1 回答 1

2

问题是您附加onerror阵列上而不是单个图像对象上。

你应该这样做:

newimages[i].onerror = function() {
    ...
}
于 2013-03-29T10:50:45.443 回答