Beim Umgang mit einem contentEditable <div> setzt die Standardbrowserfunktionalität die Cursorposition auf den Anfang des Textes zurück wenn man den Fokus wiedererlangt. Um dieses Problem zu beheben, ziehen Sie die folgende Lösung in Betracht:
Cursorposition speichern und wiederherstellen:
Dieser Ansatz stellt sicher, dass der Cursor an der letzten bekannten Position positioniert wird, wenn das Div den Fokus wiedererlangt.
Umgang mit Klicks:
Um die Auswahl beim Klicken auf das Div wiederherzustellen, sind die folgenden zusätzlichen Schritte erforderlich notwendig:
Arbeitscode:
<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; } }
Das obige ist der detaillierte Inhalt vonWie kann man die Cursorposition in einem ContentEditable Div festlegen und beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!