contentEditable <div>를 처리할 때 기본 브라우저 기능은 커서 위치를 텍스트의 시작 부분으로 재설정합니다. 초점을 되찾았을 때. 이 문제를 해결하려면 다음 해결 방법을 고려하십시오.
커서 위치 저장 및 복원:
이 접근 방식을 사용하면 div가 포커스를 다시 얻을 때 마지막으로 알려진 위치에 커서가 배치됩니다.
클릭 처리:
div를 클릭할 때 선택 항목을 복원하려면 다음을 수행하세요. 추가 단계가 필요합니다:
작업 코드:
<div>
var savedRange, isInFocus; function saveSelection() { savedRange = window.getSelection ? window.getSelection().getRangeAt(0) : document.selection.createRange(); } function restoreSelection() { isInFocus = true; document.getElementById("area").focus(); if (savedRange) { if (window.getSelection) { var s = window.getSelection(); s.removeAllRanges(); s.addRange(savedRange); } else if (document.createRange) { window.getSelection().addRange(savedRange); } else if (document.selection) { savedRange.select(); } } } function onDivBlur() { isInFocus = false; } function cancelEvent(e) { if (isInFocus === false && savedRange) { if (e && e.preventDefault) { e.stopPropagation(); e.preventDefault(); } else { window.event.cancelBubble = true; } restoreSelection(); return false; } }
위 내용은 ContentEditable Div에서 커서 위치를 설정하고 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!