javascript
는 기존 선택을 가져오고, 전체 또는 부분적으로 모두 선택/선택 취소하고, 문서에서 선택한 부분을 제거하고, 태그로 감싸는 등의 작업을 수행할 수 있다.
선택한 기본 개념은 Range
기본적으로 한 쌍의 "경계점"인 범위 시작과 범위 끝이다.
각 점은 시작부터 상대적인 오프셋이 있는 상위 DOM 노드
로 표시된다.
부모 노드가 요소 노드이면 오프셋은 자식 번호이고 텍스트 노드의 경우 텍스트의 위치이다.
아래와 같이 Range()
객체로 범위를 생성할 수 있다.
let range = new Range();
range.setStart(node, offset)
그런 다음
range.setStart(node, offset)
과
range.setEnd(node, offset)
로 선택 경계를 설정할 수 있다.