8

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";

运行时,它会说“找到”。如果图像数据实际上可以加载,有没有办法检测 404?

如果可以检测到链接返回标准的 youtube“破碎视频”缩略图图像数据,那也很好。

4

1 回答 1

4

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

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

于 2014-02-16T14:40:05.340 回答