>웹 프론트엔드 >JS 튜토리얼 >상위 컨테이너 내에서 선택 항목의 시작 및 끝 오프셋을 얻는 방법은 무엇입니까?

상위 컨테이너 내에서 선택 항목의 시작 및 끝 오프셋을 얻는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-19 14:12:02148검색

How to Get the Start and End Offsets of a Selection within its Parent Container?

상위 컨테이너를 기준으로 범위의 시작 및 끝 오프셋 가져오기

HTML 문서에서 사용자 선택은 다양한 요소와 텍스트 노드로 확장될 수 있습니다. . 선택 항목의 상위 컨테이너 내 문자의 정확한 범위를 결정하는 것은 어려울 수 있습니다. 그러나 브라우저 변형에 관계없이 이를 달성하기 위해 다양한 기술을 활용할 수 있습니다.

한 가지 접근 방식은 선택 범위를 복제하고 해당 끝점을 상위 컨테이너의 시작과 끝으로 설정하는 것입니다. 결과 텍스트 내용을 원래 선택 범위와 비교하여 상위 항목을 기준으로 시작 및 끝 오프셋을 계산할 수 있습니다. 다음은 JavaScript의 예입니다.

function getSelectionCharacterOffsetWithin(element) {
  var start = 0;
  var end = 0;
  var preCaretRange = range.cloneRange();
  preCaretRange.selectNodeContents(element);
  preCaretRange.setEnd(range.startContainer, range.startOffset);
  start = preCaretRange.toString().length;
  preCaretRange.setEnd(range.endContainer, range.endOffset);
  end = preCaretRange.toString().length;
  return { start: start, end: end };
}

이 방법은 HTML 태그 및 텍스트 노드 순회를 고려하여 상위 컨테이너 내에서 시작 및 끝 오프셋을 모두 제공합니다. 텍스트 편집 도구, 콘텐츠 조작 스크립트 등 정확한 문자 오프셋이 필요한 다양한 애플리케이션에 사용할 수 있습니다.

위 내용은 상위 컨테이너 내에서 선택 항목의 시작 및 끝 오프셋을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.