5

我正在使用 Javascript 将图像添加到 HTML5 画布:

img = new Image(); 
img.addEventListener('load', loadCallBack, false);
img.src = image_url;

然后loadCallBack绘制图像。

问题是有时image_url指的是损坏的或不存在的图像。发生这种情况时,我在控制台中收到 404 错误,并且画布上的图像保持白色。相反,我希望能够将图像的src属性替换为另一个image_url.

我尝试了以下方法,但没有奏效:

img.addEventListener("error", function(){console.log("404");});

如何检测图像的 404?

注意:我仍在寻找解决方案,因为到目前为止发布的两个都没有工作。

4

2 回答 2

15

与 Kostia 的答案相同的代码:只是为了比较 jQuery 的丑陋和 vanilla javascript 的美感:

function brokenImage() { ... }

img = new Image();
img.onerror = brokenImage;
img.src = "invalid_img_name.png";​
于 2012-09-06T22:11:24.980 回答
4

在 jQuery 中为我工作... http://jsfiddle.net/5v2qG/

img = new Image(); 
$(img).bind('error', function () {
      alert('error called');                                                
});
img.src = "invalid_img_name.png";​
于 2012-09-06T20:06:24.017 回答