수색…


통사론

  • 선택 sel = window.getSelection ();
  • 선택 sel = document.getSelection (); // 위와 동일하다.
  • 범위 range = document.createRange ();
  • range.setStart (startNode, startOffset);
  • range.setEnd (endNode, endOffset);

매개 변수

매개 변수 세부
startOffset 노드가 텍스트 노드이면 startNode 의 시작 부분부터 범위가 시작되는 곳까지의 문자 수입니다. 그렇지 않으면 범위가 시작되는 startNode 의 시작 부분과 시작되는 노드 사이의 자식 노드의 수입니다.
endOffset 노드가 텍스트 노드이면 startNode 의 시작 부분부터 끝나는 문자까지의 문자 수입니다. 그렇지 않으면 범위가 끝나는 startNode 의 시작 부분과 시작 노드 사이의 자식 노드의 수입니다.

비고

선택 API를 사용하면 문서에서 선택 (강조 표시) 된 요소 및 텍스트를보고 변경할 수 있습니다.

이는 문서에 적용되는 Singleton Selection 인스턴스로 구현되며 각각 하나의 인접한 선택된 영역을 나타내는 Range 객체의 컬렉션을 보유합니다.

실질적으로 말하자면 Mozilla Firefox를 제외한 브라우저는 선택 항목에서 여러 범위를 지원하지 않으며 이는 사양에서 권장하지 않습니다. 또한 대부분의 사용자는 여러 범위의 개념에 익숙하지 않습니다. 따라서 개발자는 일반적으로 하나의 범위에만 관심을 가질 수 있습니다.

선택한 모든 항목을 선택 해제하십시오.

let sel = document.getSelection();
sel.removeAllRanges();

요소의 내용 선택

let sel = document.getSelection();

let myNode = document.getElementById('element-to-select');

let range = document.createRange();
range.selectNodeContents(myNode);

sel.addRange(range);

대부분의 브라우저는 여러 범위를 지원하지 않으므로 먼저 이전 선택 영역을 모두 제거해야 할 수 있습니다.

선택 텍스트 가져 오기

let sel = document.getSelection();
let text = sel.toString();
console.log(text); // logs what the user selected

또는 객체를 문자열로 변환 할 때 일부 함수는 toString 멤버 함수를 자동으로 호출하므로 항상 호출 할 필요는 없습니다.

console.log(document.getSelection());


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow