YouTube restituisce 404 per miniature non esistenti, ma restituisce anche dati di immagine validi (miniatura video rotti), quindi controllando con Immagine non funziona, onerror non viene chiamato:Come rilevare quando un link immagine restituisce 404, MA è ancora un'immagine valida
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";
Quando viene eseguito, dice "trovato". C'è un modo per rilevare 404 se i dati dell'immagine possono essere effettivamente caricati?
È anche un bene se shomehow può essere rilevato che il link restituisce i dati di immagine di anteprima "broken video" standard di YouTube.
si potrebbe fare attraverso le intestazioni HTTP, ma ti costerà un viaggio di andata e ritorno. http://stackoverflow.com/questions/220231/accessing-the-web-pages-http-headers-in-javascript. ps; lo identificheresti con un codice di risposta http 404 e un tipo di contenuto di immagine/jpeg. –
@ Marvin Smit: ma poi devo fare una richiesta AJAX verso YouTube, no? Perché ho bisogno delle intestazioni dell'immagine di YouTube, non di quelle del documento corrente. E non posso inviare una richiesta Ajax a YouTube, a causa della stessa restrizione della politica di origine. – Tom
Possibile solo se è possibile controllare le intestazioni 'Access-Control-Allow-Origin', che potrebbe essere un'opzione none accanto al round trip aggiuntivo per questo, che è molto probabile che sia costosa. –