Document.createTextNode()
사용법
createTextNode()
함수는
지정한 문자열로 텍스트 노드 객체를 생성해서 반환합니다.
노드
HTML DOM은 노드의 집합체입니다.
HTML에서 말하는 요소는 "요소 노드"를 의미하며,
텍스트는 "텍스트 노드",
주석은 "주석 노드"라고 말합니다.
createTextNode()
함수로 생성된 텍스트 객체는 아직 DOM에 추가되지 않은 상태이며, 원하는 위치에 직접 추가(혹은 삽입)해야 웹 페이지에서 표시됩니다.
구문
매개변수
data |
생성하는 텍스트 노드에 사용할 문자열입니다. |
---|
반환 값
생성된 텍스트 노드 객체입니다.
이 함수는 텍스트를 삽입하는 목적으로 사용됩니다.
이때 삽입하는 텍스트에 HTML 태그가 포함되어 있으면 자동으로 이스케이프 처리되어 사람이 볼 수 있는 텍스트로 변환됩니다. 주의할 예제를 참고하세요!
HTML 태그를 이스케이프 처리한다는 것은 예를 들어, <
기호는 HTML의 시작 태그로 인식되기 때문에, <
라는 기호만을 그대로 기재하면 브라우저에서의 표시에 문제가 생기거나 표시되지 않거나 합니다. 이것을 이스케이프 처리하면 HTML의 특수 문자로 해당하는 기호로 변환해서 사람이 볼 수 있게 한다는 것을 의미합니다.
HTML 특수 문자 사용법과 의의 – 예약된 문자와의 충돌을 피하며 웹 콘텐츠 작성하기를 참고하세요!
예제
다음은 createTextNode()
로 생성한 텍스트 노드를 <div>
요소의 자식으로 추가하는 예제입니다.
코드 부연설명
appendChild()
함수는 노드를 특정 노드의 마지막 자식으로 추가합니다.
주의할 예제
createTextNode()
함수는 텍스트 노드를 생성하기 때문에 생성하는 문자열에 HTML 태그가 포함되어 있으면 자동으로 이스케이프 처리되어 사람이 볼 수 있는 텍스트로 변환됩니다.
코드 부연설명
appendChild()
함수는 노드를 특정 노드의 마지막 자식으로 추가합니다.
사용자가 직접 입력하는 문자열을 DOM에 추가할 때 createTextNode()
함수를 사용해서 추가할 경우 이스케이프 처리를 하기 때문에 보안적인 측면에서 상대적으로 위험성이 낮는 장점이 있습니다.
브라우저 호환성
메서드 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
createTextNode()
|
1 | 12 | 1 | 1 |
명세서
명세서 사양 | |
---|---|
createTextNode()
|
DOM Standard #ref-for-dom-document-createtextnode① |