개발이야기/HTML&CSS

[HTML&CSS] HTML contenteditable 속성 사용법, 예제 (HTML 요소 편집)

후린개발자 2024. 5. 16.
반응형

HTML의 contenteditable 속성은 사용자가 웹 페이지의 요소를 직접 편집할 수 있도록 해주는 속성입니다.
아래 예제코드는 contenteditable 속성을 사용하여 div 내용을 편집하고 이벤트 처리를 통해 변경된 텍스트를 출력하고 있습니다.

 

1. 사용법

<div contenteditable="true">
    여기에 내용을 직접 입력하세요.
</div>

 

위의 코드에서 <div> 요소에 contenteditable 속성을 추가하면 해당 요소가 편집 가능한 상태가 됩니다. 사용자는 해당 요소를 클릭하여 내용을 수정할 수 있습니다.

 

블로그 게시물, 웹 문서, 댓글 등 다양한 웹 콘텐츠를 편집할 때 유용하게 사용될 수 있습니다. 에디터와 비슷한 환경에서 웹 페이지의 내용을 편집할 수 있어서 작성 및 편집 과정이 보다 편리해집니다.

 

2. 예제

<!DOCTYPE html>
<html lang="en">
<head>
<style>
  /* 스타일링은 선택사항입니다. */
  .editable {
    border: 1px solid #ccc;
    padding: 10px;
    margin: 20px;
  }
</style>
</head>
<body>
<div class="editable" contenteditable="true" id="editableDiv">
  이 부분을 클릭하고 텍스트를 편집해보세요.
</div>

<p>이 부분은 편집이 불가능합니다.</p>

<script>
  const editableDiv = document.getElementById('editableDiv');

  // 텍스트가 변경될 때마다 발생하는 이벤트 리스너 추가
  editableDiv.addEventListener('input', function() {
    // 변경된 텍스트 가져오기
    const editedText = this.innerText;
    console.log('편집된 내용:', editedText);
  });

  // 포커스를 잃었을 때 발생하는 이벤트 리스너 추가
  editableDiv.addEventListener('blur', function() {
    console.log('포커스를 잃었습니다.');
  });
</script>

</body>
</html>

 

contenteditable 속성을 사용해서 발생하는 이벤트를 처리하고 있습니다. 해당 요소의 텍스트가 변경되거나 포커스가 변경될 때 콘솔에 출력하고 있습니다.

 

1) editableDiv.addEventListener('input', function() { ... });

 

-editableDiv 요소에 input 이벤트 리스너를 추가합니다. input 이벤트는 요소의 값이 변경될 때 발생합니다. 사용자가 텍스트를 입력하거나 수정할 때마다 이 리스너가 실행됩니다.

2) editableDiv.addEventListener('blur', function() { ... });

-editableDiv 요소에 blur 이벤트 리스너를 추가합니다. blur 이벤트는 요소가 포커스를 잃었을 때 발생합니다.

 

 


 

편집 전 화면

 

div 편집 화면

 

이벤트 발생 console.log 출력

반응형

댓글

💲 추천 글