Maison > Article > interface Web > Comment définir et maintenir la position du curseur dans un div ContentEditable ?
Lorsque vous traitez un contentEditable <div>, la fonctionnalité par défaut du navigateur réinitialise la position du curseur au début du texte en retrouvant sa concentration. Pour résoudre ce problème, envisagez la solution suivante :
Stocker et restaurer la position du curseur :
Cette approche garantit que le curseur est positionné au dernier emplacement connu lorsque le div retrouve le focus.
Gestion des clics :
Pour restaurer la sélection en cliquant sur le div, les étapes supplémentaires suivantes sont nécessaire :
Code de travail :
<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; } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!