>웹 프론트엔드 >JS 튜토리얼 >ContentEditable 요소에서 캐럿 위치를 프로그래밍 방식으로 설정하는 방법은 무엇입니까?

ContentEditable 요소에서 캐럿 위치를 프로그래밍 방식으로 설정하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-05 19:20:11909검색

How to Programmatically Set the Caret Position in a ContentEditable Element?

콘텐츠 편집 가능 요소에서 캐럿 위치 설정

콘텐츠 편집 가능 div에서 캐럿 위치 설정은 Range 및 Selection 개체를 사용하여 수행할 수 있습니다. 요소 내의 특정 위치에 캐럿을 설정하는 방법은 다음과 같습니다.

코드:

function setCaret() {
    var el = document.getElementById("editable")
    var range = document.createRange()
    var sel = window.getSelection()
    
    range.setStart(el.childNodes[2], 5)
    range.collapse(true)
    
    sel.removeAllRanges()
    sel.addRange(range)
}

설명:

  • el은 콘텐츠 편집 가능 요소를 나타냅니다.
  • range는 캐럿을 지정하는 데 사용되는 Range 객체입니다. position.
  • sel은 선택 항목을 조작하는 데 사용되는 Selection 개체입니다.
  • setStart()는 범위의 시작을 지정된 노드와 오프셋으로 설정합니다(el.childNodes[2] 및 5, 각각).
  • collapse()는 시작 시 범위를 단일 지점으로 축소합니다. position.
  • removeAllRanges()는 기존 선택 항목을 모두 제거합니다.
  • addRange()는 생성된 범위를 선택 항목에 추가합니다.

예:

다음 HTML을 고려해보세요.

<div>

"포커스" 버튼을 누르면 JavaScript 함수 setCaret()가 호출되어 텍스트 두 번째 줄의 다섯 번째 문자에 캐럿이 배치됩니다.

위 내용은 ContentEditable 요소에서 캐럿 위치를 프로그래밍 방식으로 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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