contenteditable 요소에서 캐럿 위치 설정
contenteditable div 요소 내의 정확한 위치에 캐럿을 설정하는 것은 어려운 작업일 수 있습니다. . 온라인 커뮤니티에서 도움을 구하다가 아래와 유사한 JavaScript 솔루션을 접했을 수도 있습니다.
const range = document.createRange(); const myDiv = document.getElementById("editable"); range.setStart(myDiv, 5); range.setEnd(myDiv, 5);
그러나 웹의 지식 저장소에 존재함에도 불구하고 이 접근 방식은 Firefox와 Chrome 모두에서 효과적이지 않은 것으로 입증되었습니다. .
범위 및 선택 개체 수용
상황에서는 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) }
HTML 구현
이 솔루션을 완전히 통합하려면 코드 내에 다음 HTML을 통합하세요.
<div>
이 구현을 통해 버튼을 클릭하면 편집 가능한 div 내에서 캐럿의 위치가 적절하게 지정되어 해당 div를 세밀하게 제어할 수 있습니다. 배치합니다.
위 내용은 ContentEditable Div에서 캐럿 위치를 어떻게 정확하게 설정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!