Home > Article > Web Front-end > How to Prevent the Cursor from Resetting to the Beginning of a ContentEditable ``?
Set Cursor Position on ContentEditable When working with a contentEditable='on' Solution: 1. Save Cursor Position: This function attaches to the onmouseup and onkeyup events of the 2. Restore Cursor Position: This function attaches to the onfocus event of the 3. Prevent Click Events (Optional): If you want the cursor to be restored on click instead of resetting to the beginning, you can use the following functions: These functions attach to the onblur, onclick, and onmousedown events and prevent the click event from resetting the cursor position. They also restore the selection, ensuring that the cursor is placed where it left off. The above is the detailed content of How to Prevent the Cursor from Resetting to the Beginning of a ContentEditable ``?. For more information, please follow other related articles on the PHP Chinese website!function saveSelection() {
if (window.getSelection) { // non-IE
savedRange = window.getSelection().getRangeAt(0);
} else if (document.selection) { // IE
savedRange = document.selection.createRange();
}
}
function restoreSelection() {
if (savedRange != null) {
if (window.getSelection) { // non-IE
var s = window.getSelection();
s.removeAllRanges();
s.addRange(savedRange);
} else if (document.createRange) { // non-IE
window.getSelection().addRange(savedRange);
} else if (document.selection) { // IE
savedRange.select();
}
}
}
var isInFocus = false;
function onDivBlur() {
isInFocus = false;
}
function cancelEvent(e) {
if (isInFocus == false && savedRange != null) {
e.stopPropagation();
e.preventDefault();
restoreSelection();
return false;
}
}
Related articles
See more