Maison > interface Web > js tutoriel > Comment puis-je définir avec précision la position du curseur dans un div ContentEditable ?

Comment puis-je définir avec précision la position du curseur dans un div ContentEditable ?

DDD
Libérer: 2024-12-10 03:46:09
original
517 Les gens l'ont consulté

How Can I Accurately Set the Caret Position in a ContentEditable Div?

Définir la position du caret dans un élément contenteditable

Viser à établir le caret à un emplacement précis dans un élément div contenteditable peut être une tâche difficile . En cherchant de l'aide auprès de la communauté en ligne, vous avez peut-être rencontré une solution JavaScript similaire à celle ci-dessous :

const range = document.createRange();
const myDiv = document.getElementById("editable");
range.setStart(myDiv, 5);
range.setEnd(myDiv, 5);
Copier après la connexion

Cependant, malgré son existence dans le référentiel de connaissances du Web, cette approche s'est révélée inefficace dans Firefox et Chrome. .

Embrasser la gamme et les objets de sélection

Pour rectifier la situation, libérer le potentiel de la gamme et les objets de sélection sont cruciaux. Ces objets servent de gardiens pour contrôler précisément le placement du curseur.

Pour illustrer leur application, déplaçons le curseur vers le cinquième caractère de la deuxième ligne de texte. Voici comment cela peut être réalisé :

function setCaret() {
    var el = document.getElementById("editable")
    var range = document.createRange()
    var sel = window.getSelection()
    
    range.setStart(el.childNodes[2], 5)
    range.collapse(true)
    
    sel.removeAllRanges()
    sel.addRange(range)
}
Copier après la connexion

Implémentation HTML

Pour intégrer pleinement cette solution, intégrez le code HTML suivant dans votre code :

<div>
Copier après la connexion

Avec cette implémentation, cliquer sur le bouton positionne correctement le curseur dans le div modifiable, vous accordant un contrôle méticuleux sur son placement.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal