2012-01-11 18 views
2

Youtubeでホストされているビデオのサムネイルを読み込むと、404エラーが実際の画像となります。例:エラーが本物の画像としての地位を提示しているので http://i.ytimg.com/vi/eMFYg2oZ4qE/default.jpg http://i.ytimg.com/vi/0/default.jpgjQuery/Javascriptで「404画像エラー」エラーを処理する

は、

<img onerror="alert('error!')" src="http://i.ytimg.com/vi/0/default.jpg"> 

は404を引くには動作しません。エラー...どのように私はこの問題に取り組むことができますか?

+0

私は 'onerror'が有効ではないHTMLとしてどうするのかよく分かりませんが、phpで画像のエラー処理に関するこの質問が参考になるかもしれません:http://stackoverflow.com/questions/1025065/なぜなら、このコード作業は – jrummell

+1

'onerror'が有効です。 http://theglenbot.com/html-image-tag-onerror-attribute/ –

+0

onerrorは良いですが、下記のコメントのように、それは技術的に404ではなく、YouTubeサーバーからのデフォルトの応答です。 –

答えて

2

私はそれらがYouTubeのサーバー側で処理されると信じていますが、小さな画像グループを使用してこれをjQueryとタグ付けしたので、単純なAJAXリクエストでその存在を確認し、属性をデフォルトのイメージパスに設定します。その中

$.ajax("/path/to/image.img", failure: function() { 
    $('#this-image').attr('src', 'default.jpg'); 
}) 

ダミーセレクタ、あなたはそれがいくつかのローカル画像に

+0

ダミーセレクタは、すべての画像をdefault.jpgに変更すると言っていましたが。 –

+0

Ha、はい。思っていませんでした。編集で更新されました –

+0

私はクロスドメインajaxは重いコード(プロキシのようないくつかの種類のphpなど)なしでは不可能だと理解しました。私はできるだけ軽量にしたいと思います。 –

0

設定デフォルトの画像アプリケーションのロジックを適合させるために必要があると思います。 ajaxリクエストが渡された場合は、server imageを使用します。

 var defaultImage = "/images/default_user.jpg"; 
     $.ajax({ 
      url: '/path/to/image.img', 
      failure: function() { 
       alert('Image not found in server');    
      }, 
      success: function() { 
       defaultImage = "/path/to/image.img"; 
      } 
     });