innerHTML
display:none으로 지정한 요소, 자식 요소의 element tags, 모든 스페이싱(띄어쓰기), 줄 바꿈이 그대로 출력된다.
세 가지 중에서 가장 추천하지 않는 속성이다
프로퍼티의 값은 text와 html로 파싱 한 결과이며 다른 속성에 비해 상대적으로 파싱이 느리다
하지만 파싱이 느리다는 점 보다 더 큰 문제는 보안 취약성 문제이며,
XSS의 취약 사례로 언급이 되기도 했었다.
innerText
text, plain으로 파싱한 결과이며 element tags 없이 딱 텍스트만 나온다.
만약 여러 번 중복되는 스페이싱이 존재한다면 딱 한 번만 나오며, 줄 바꿈은 따로 적용되지 않는다
innerText는 IE8이하에서 지원되지 않았던 TextContent와 달리 IE엔진에 적합한 속성이기 때문에
다른 브라우저가 아닌 IE를 중점적으로 고려하는 경우 TextContent를 대신하거나,
화면에 있는 텍스트 그대로 읽어오고 싶을 때 사용하기에 괜찮다
TextContent
위의 innerText처럼 프로퍼티가 text, plain으로 파싱 한 결과이며 element tags 없이 텍스트만 나온다
여기까지만 보면 innerText와 같아 보이지만, 여러 번 중복되는 스페이싱과 줄 바꿈 모두 그대로 적용이 된다.
또한 노드가 갖고 있는 모든 텍스트를 읽어오기 때문에 display:none; 의 속성을 준 텍스트도 읽어온다
세 가지 속성 중 가장 사용을 추천하는 속성이며, 성능이나 보안적인 측면에서 가장 뛰어나다
Ref.
반응형
'IT 개발' 카테고리의 다른 글
Vue 시작하기 ① (0) | 2021.08.06 |
---|---|
CSS 단위 em, rem, vh vw, %, px 정리 (0) | 2021.08.01 |
이벤트 위임이란? EventDelegation (0) | 2021.07.20 |
캡처링과 버블링 + event.stopPropagation외에 이벤트를 막는 방법 (0) | 2021.07.19 |
align-items / align-content / align-self의 특징과 차이점 (0) | 2021.07.14 |