Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML onerror 이벤트 속성 완벽 가이드: 외부 파일 로딩 오류 처리하기

HTML onerror 이벤트 속성이란?

HTML onerror 이벤트 속성은 HTML 문서에서 외부 파일(이미지, 스크립트 등)을 로드하는 과정에서 오류가 발생했을 때 자동으로 실행되는 이벤트 핸들러입니다. 예를 들어, 존재하지 않는 이미지 파일을 불러오려고 할 때 onerror 속성에 지정한 스크립트가 실행되어 대체 이미지를 표시하거나 사용자에게 알림을 보내는 등의 후속 처리를 수행할 수 있습니다.

onerror 속성은 주로 <img>, <script>, <link>처럼 외부 리소스를 불러오는 요소에서 활용됩니다.

문법(Syntax)

onerror 이벤트 속성의 기본 문법은 다음과 같습니다.

<tagname onerror="script">Content</tagname>

예제

다음은 HTML onerror 이벤트 속성을 활용한 실전 예제입니다. 버튼을 클릭하면 잘못된 소스 경로를 가진 이미지 요소가 동적으로 생성되며, 이미지 로딩에 실패하는 순간 onerror 이벤트가 발생해 페이지 배경색이 변경됩니다.

<!DOCTYPE html>
<html>
<head>
<style>
    body {
        color: #000;
        height: 100vh;
        background: linear-gradient(62deg, #FBAB7E 0%, #F7CE68 100%) no-repeat;
        text-align: center;
        padding: 20px;
    }
    .btn {
        background: #db133a;
        border: none;
        height: 2rem;
        border-radius: 2px;
        width: 40%;
        display: block;
        color: #fff;
        outline: none;
        cursor: pointer;
        margin: 1rem auto;
    }
</style>
</head>
<body>
<h1>HTML onerror Event Attribute Demo</h1>
<button onclick="add()" class="btn">Add Nature Image</button>
<script>
    function add() {
        var imgEle = document.createElement('IMG');
        imgEle.setAttribute("src", "nature.png");
        imgEle.setAttribute("alt", "nature image");
        imgEle.setAttribute("onerror", "errorFn()");
        document.body.appendChild(imgEle);
    }
    function errorFn() {
        document.body.style.background = "linear-gradient(45deg, #8BC6EC 0%, #9599E2 100%) no-repeat";
        document.body.style.color = "#fff";
    }
</script>
</body>
</html>

실행 결과

초기 화면은 아래와 같습니다.

HTML onerror 이벤트 속성 완벽 가이드: 외부 파일 로딩 오류 처리하기

"Add Nature Image" 버튼을 클릭하면 잘못된 src 속성과 onerror 이벤트 속성을 가진 이미지 요소가 생성되어 body 요소에 추가됩니다.

HTML onerror 이벤트 속성 완벽 가이드: 외부 파일 로딩 오류 처리하기

이미지 로딩에 실패하면 onerror 이벤트가 트리거되어 errorFn() 함수가 실행되고, 페이지 배경이 파란색 계열 그라데이션으로 바뀌는 것을 확인할 수 있습니다.

onerror 속성 활용 팁

  • 대체 이미지 표시: 이미지 로딩 실패 시 기본 이미지나 플레이스홀더로 교체할 수 있습니다.
  • 사용자 알림: 리소스 로딩 오류 발생 시 사용자에게 안내 메시지를 표시할 수 있습니다.
  • 오류 로깅: 서버로 오류 정보를 전송해 프론트엔드 리소스 문제를 추적할 수 있습니다.