Maison >interface Web >js tutoriel >Comment obtenir de manière fiable la position de la colonne Caret dans une zone de texte dans les navigateurs ?
Obtention de la position de la colonne Caret dans les caractères d'une zone de texte
Détermination de la position du curseur dans une zone de texte
Pour les navigateurs comme Firefox et Safari, l'utilisation de textarea.selectionStart fournit une solution simple. Toutefois, dans Internet Explorer, une approche alternative est requise. Voici une solution robuste qui répond aux deux cas :
function getCaret(node) { if (node.selectionStart) { return node.selectionStart; } else if (!document.selection) { return 0; } var c = "<pre class="brush:php;toolbar:false">function getCaret(el) { if (el.selectionStart) { return el.selectionStart; } else if (document.selection) { el.focus(); var r = document.selection.createRange(); if (r == null) { return 0; } var re = el.createTextRange(), rc = re.duplicate(); re.moveToBookmark(r.getBookmark()); rc.setEndPoint('EndToStart', re); return rc.text.length; } return 0; }1", sel = document.selection.createRange(), dul = sel.duplicate(), len = 0; dul.moveToElementText(node); sel.text = c; len = dul.text.indexOf(c); sel.moveStart('character',-1); sel.text = ""; return len; }
De plus, le plugin jQuery FieldSelection offre un moyen pratique de récupérer la position du curseur et d'effectuer des opérations avancées de sélection de texte.
Implémentation mise à jour :
Voici une version mise à jour de la fonction getCaret qui fournit des fonctionnalités améliorées. précision :
Avec ces solutions, vous pouvez déterminer efficacement la position précise du curseur dans une
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!