contentEditable 요소 내에서 캐럿 위치를 가져오는 것은 어려울 수 있지만 대화형 텍스트 편집기를 구축하려면 기본 기술을 이해하는 것이 필수적입니다.
캐럿 위치를 결정하기 위해 각각 다른 브라우저 기능에 맞는 여러 가지 접근 방식이 있습니다. 일반적인 방법 중 하나는 Firefox, Chrome, Safari와 같은 최신 브라우저에서 Selection 개체를 활용하는 것입니다. 다음 코드 조각은 이 접근 방식을 보여줍니다.
function getCaretPosition(editableDiv) { var caretPos = 0; var sel = window.getSelection(); if (sel.rangeCount) { var range = sel.getRangeAt(0); if (range.commonAncestorContainer.parentNode == editableDiv) { caretPos = range.endOffset; } } return caretPos; }
Selection 개체를 지원하지 않는 이전 브라우저의 경우 document.selection.createRange 메서드를 대안으로 사용할 수 있습니다. 다음 코드는 이 접근 방식을 보여줍니다.
function getCaretPosition(editableDiv) { var caretPos = 0; if (document.selection && document.selection.createRange) { var range = document.selection.createRange(); if (range.parentElement() == editableDiv) { var tempEl = document.createElement("span"); editableDiv.insertBefore(tempEl, editableDiv.firstChild); var tempRange = range.duplicate(); tempRange.moveToElementText(tempEl); tempRange.setEndPoint("EndToEnd", range); caretPos = tempRange.text.length; } } return caretPos; }
캐럿 위치를 얻은 후에는 이를 사용하여 다음과 같은 다양한 작업을 수행할 수 있습니다.
캐럿 위치를 정확하게 결정하려면 브라우저마다 다른 기술이 필요할 수 있으므로 브라우저 간 호환성을 위해서는 적절한 접근 방식을 선택하는 것이 중요합니다.
위 내용은 ContentEditable 요소에서 캐럿 위치를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!