이 영역을 누르면 첫 페이지로 이동
일반인의 웹 개발일기 블로그의 첫 페이지로 이동

일반인의 웹 개발일기

페이지 맨 위로 올라가기

일반인의 웹 개발일기

웹 개발과 관련된 모든 이야기

[Javascript] 이미지 불러오기 오류 및 무한루프 해결 - onError

  • 2023.04.10 16:16
  • 개발 이야기/Javascript
반응형

HTML 이미지 태그를 사용하여 이미지를 로드할 때

이미지 로드 오류 발생 시 onError 속성을 사용하여 대체이미지를 설정할 수 있다.


1. onError 속성 사용

아래 작성한 이미지 태그를 보면 dog.jpg 이미지를 로드하고,

로드에 실패했을 때 dog_2.jpg 이미지를 로드하도록 onError 속성을 추가했다.

<img src="dog.jpg" onError="this.src = dog_2.jpg;"/>

 

그런데 만약 dog_2.jpg 이미지도 로드가 되지 않는다면 어떻게 될까?

 

그런 상황이 발생한다면 onError에서의 대체 이미지도 로드 오류로 판단해서

다시 onError를 호출하게 되면서 계속해서 onError를 호출하는 무한루프에 빠지게 된다.

 

2. onError 초기화 - 무한루프 방지

이 상황을 해결하기 위해 onError에서 다음과 같이 onError값을 비워주도록 한다.

<img src="dog.jpg" onError="this.onerror = null; this.src = dog_2.jpg;"/>

 

처음 dog.jpg 이미지를 로드하다가 실패하면 onError를 실행하고,

onError 실행하면 onError를 비워주고 대체 이미지 경로를 세팅한다.

대체 이미지 로드도 실패하더라도 무한으로 onError를 호출하는 루프에 빠지지 않게 된다.

 

또는 해당 이미지가 노출되지 않도록 하는 방법도 있다.

<img src="dog.jpg" onError="this.style.display = 'none';"/>

 

3. onError에서 함수 사용

 

오류가 발생했을 때 더 다양하고 많은 작업들을 하기 위해 함수를 만들어 사용해도 된다.

<img src="dog.jpg" onError="onErrorFn(this);"/>

function onErrorFn (_this) {
	...
}

반응형

'개발 이야기 > Javascript' 카테고리의 다른 글

[Javascript] 자바스크립트 배열 내장함수 종류와 사용방법  (0) 2023.02.09

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [Javascript] 자바스크립트 배열 내장함수 종류와 사용방법

    [Javascript] 자바스크립트 배열 내장함수 종류와 사용방법

    2023.02.09
다른 글 더 둘러보기

정보

일반인의 웹 개발일기 블로그의 첫 페이지로 이동

일반인의 웹 개발일기

  • 일반인의 웹 개발일기의 첫 페이지로 이동
반응형

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (47)
    • 사이드 프로젝트 (3)
      • 크롤링 (2)
    • 개발 이야기 (18)
      • MSA (7)
      • Spring Boot (3)
      • JPA (0)
      • Docker (1)
      • Javascript (2)
      • AWS (Amazon Web Services) (5)
      • Jenkins (0)
    • Database (4)
      • PostgreSQL (2)
      • MySQL (1)
      • Oracle (1)
    • 에러 정리 (4)
      • Docker (1)
      • JPA (1)
      • Python (1)
      • PostgreSQL (1)
    • 운영체제 (3)
      • Linux (3)
    • 게임 (8)
      • 마인크래프트(Minecraft) (2)
      • 팰월드(PalWorld) (6)
    • 워킹홀리데이 (6)
      • 일본 워킹 홀리데이 (6)

공지사항

인기 글

최근 글

정보

흔하디흔한개발자의 일반인의 웹 개발일기

일반인의 웹 개발일기

흔하디흔한개발자

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © 흔하디흔한개발자. Designed by Fraccino.

티스토리툴바