如何检测图像链接何时返回404,但它仍然是有效图像

Tom*_*Tom 7 javascript thumbnails http-status-code-404

Youtube为不存在的缩略图返回404,但它也返回有效的图像数据(损坏的视频缩略图),因此使用Image检查它不起作用,不会调用onerror:

var img = new Image();
img.onload = function() { alert("found")};
img.onerror = function() { alert("not found") };
img.src = "http://img.youtube.com/vi/aaaa/1.jpg";
Run Code Online (Sandbox Code Playgroud)

运行时,它会显示"已找到".有没有办法检测404是否可以实际加载图像数据?

如果可以检测到链接返回标准YouTube"破碎的视频"缩略图图像数据,那么也很好.

Jan*_*pke 4

在这种情况下,作为一种粗略但可行的解决方法,我建议检查加载时图像的大小。通常缩略图会更大,因此如果返回的图像是 120x90px,您可以假设它是 404 图像。

唯一的其他方法是通过 PHP 脚本加载它,该脚本可以在传递图像之前检查 HTTP 标头。