2012-01-11 3 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

가 나는 그것의 유효하지 않은 HTML로 할 예정이다 onerror' 어떤'모르겠지만, 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 요청으로 그 존재를 점검 한 다음 실패시 "src" 속성을 기본 이미지 경로에 추가하십시오. 점에서

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

더미 선택기, 당신은 일부 지역의 이미지에 응용 프로그램의

+0

모든 이미지를 default.jpg로 바꾸는 더미 선택기를 사용 했더라도. –

+0

하, 네. 생각하지 않았어. 편집 –

+0

에서 업데이트 됨 교차 도메인 아약스가 (예를 들어, PHP와 같은 일종의 프록시를 통해) 무거운 코드 없이는 불가능하다는 것을 알고있었습니다. 가능한 한 가벼운 무게를 유지하고 싶습니다. –

0

설정 기본 이미지를 논리에 맞게해야 할 것입니다. 아약스 요청이 통과되면 서버 이미지를 사용하십시오.

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