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

この場合の大まかな回避策として、ロード時に画像のサイズを確認することをお勧めします。通常、サムネイルは大きいので、返された画像が 120x90px の場合、404 画像であると想定できます。

他の唯一の方法は、画像を通過する前に HTTP ヘッダーをチェックできる PHP スクリプトを介してロードすることです。

于 2014-02-16T14:40:05.340 に答える