innerHTML 과 textContent 차이

박현석·2022년 9월 19일
1

코드스테이츠

목록 보기
9/40
post-thumbnail

innerHTML

  • innerHTML은 'Element'의 속성으로, element내에 포함 된 HTML 또는 XML 마크업을 가져오거나 태그와 함께 입력하여 내용을 직접 설정할 수 있다.
  • 그러나 이러한 부분 때문에 XSS 공격에 취약할 수가 있다고 한다.
    XSS 공격이란?
    웹 브라우저에서 사용자가 입력할 수 있는 input 태그 등에 악의적인 script를 작성하여 해당 컨텐츠를 이용하는 다른 이용자의 개인정보 및 쿠키정보 탈취 / 악성코드 감염 / 웹페이지 변조 등의 공격을 말한다.

textContent

  • textContent는 'Node'의 속성으로, script 나 style 태그와 상관없이 해당 노드가 가지고 있는 텍스트 값을 모두 읽어온다.
  • innerHTML은 textContent에 비해서 매번 스타일링까지 적용해서 헤비한 메소드이다. 따라서 textContent를 이용하는 것이 성능적으로 좋은 퍼포먼스를 보인다.

예제

  • html
<div id='content'>
  안녕~ 
  <span style='display:none'>나를 볼 수 없어</span>
</div>
  • script
const content = document.querySelector(#content);
console.log(content.innerHTML);
// html 전체를 다 가져옴.
// 안녕~
// <span style='display:none'>나를 볼 수 없어</span>
----------------------------------------------------
console.log(content.textContent);
// 숨겨진 텍스트까지 포함해서 텍스트값을 모두 다 가져옴
// 안녕~
// 나를 볼 수 없어
profile
선한 영향력을 주는 사람

0개의 댓글