Javascript

이미지 불러오기 실패했을 때 처리하기(img 의 onError)

joy_lee 2024. 7. 15. 23:58

이미지를 정상적으로 불러올 수 없는 경우, 보이지 않게 처리해달라는 작업 지시가 있었다.

 

 

img태그

img 태그에는 이미지를 가져올 수 없을 때 깨진 이미지 아이콘과 alt 값을 함께 표시한다.

 

 

 

이미지를 가져올 수 없는 상황은 아래와 같다

  • src 속성이 “” 이거나 null일 때
  • src 의 url이 현재 사용자가 보는 페이지의 url과 동일할 때
  • 지정한 이미지가 손상돼 불러올 수 없을 때
  • 이미지의 메타데이터가 손상돼 원본 크기를 알아낼 수 없고, img 요소의 속성에도 크기를 지정하지 않은 경우
  • 사용자 에이전트가 지원하지 않는 이미지 형식인 경우

(출처 : https://developer.mozilla.org/ko/docs/Web/HTML/Element/img)

 

이미지를 가져올 수 없는 상황 처리하기

img 태그에는 onError 속성이 존재한다.

onError 는 이미지를 불러오지 못한 경우, 이벤트가 발생된다.

 

React 를 사용한 코드 내에서 useRef로 img 를 찾아서 처리해야하나? 했는데 생각보다 쉽게 해결할 수 있었다.

 

순수 HTML 코드

 

handleImageError 함수에서는 event 객체를 전달받는다.

event.currentTarget.style.display = ‘none’;

으로 에러가 일어난 이미지 태그가 display = ‘none’상태로 변경해 보이지 않도록 처리한다.

위와 같이 처리하면 alt 값과 이미지 로딩 실패 아이콘이 보이지 않는다.

 

리액트 코드도 동일하게 작성하면 된다.

 

 

 

참고 페이지

https://developer.mozilla.org/ko/docs/Web/HTML/Element/img

https://www.w3schools.com/jsref/event_onerror.asp