Youtube gibt 404 für nicht vorhandene Miniaturbilder zurück, aber es gibt auch gültige Bilddaten zurück (gebrochenes Video-Thumbnail), so dass es mit Image nicht funktioniert, onerror heißt nicht:Wie erkennt man, wenn ein Bild Link 404 zurückgibt, aber es ist immer noch ein gültiges Bild
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";
Wenn ausgeführt dann heißt es "gefunden". Gibt es eine Möglichkeit, 404 zu erkennen, wenn die Bilddaten tatsächlich geladen werden können?
Es ist auch gut, wenn es shomehow festgestellt werden kann, dass der Link die Standard Youtube "gebrochenen Video" thumbnail Bilddaten zurückgibt.
Sie könnten es über die HTTP-Header tun, aber es kostet Sie eine Rundreise. http://stackoverflow.com/questions/220231/accessing-the-web-pages-http-headers-in-javascript. ps; Sie würden es mit einem HTTP-Response-Code von 404 und einem Inhaltstyp von image/jpeg identifizieren. –
@Marvin Smit: aber dann muss ich eine AJAX Anfrage an youtube machen, oder? Weil ich die Header des Youtube-Bildes benötige, nicht die des aktuellen Dokuments. Und ich kann keine ajax-Anfrage an youtube senden, wegen der gleichen ursprünglichen Richtlinienbeschränkung. – Tom
Nur möglich, wenn Sie die Header 'Access-Control-Allow-Origin' steuern können. Dies ist möglicherweise keine Option neben dem zusätzlichen Roundtrip, der sehr wahrscheinlich kostspielig ist. –