Maison >interface Web >js tutoriel >Extraits de code de sélection de texte d'entrée

Extraits de code de sélection de texte d'entrée

Lisa Kudrow
Lisa Kudroworiginal
2025-02-23 09:38:14706parcourir

Ce document fournit des extraits de code pour gérer la sélection de texte dans les champs d'entrée. Le chrome moderne et Firefox utilisent .setSelectionRange(), mais Firefox exige que l'élément se concentre au préalable.

Input Text Selection Code Snippets

Obtenir la position du curseur:

<code class="language-javascript">jQuery.fn.getCursorPosition = function(){
    if(this.length == 0) return -1;
    return $(this).getSelectionStart();
};</code>

Obtenir le démarrage de la sélection:

<code class="language-javascript">jQuery.fn.getSelectionStart = function(){
    if(this.length == 0) return -1;
    input = this[0];
    var pos = input.value.length;
    if (input.createTextRange) {
        var r = document.selection.createRange().duplicate();
        r.moveEnd('character', input.value.length);
        if (r.text == '') pos = input.value.length;
        pos = input.value.lastIndexOf(r.text);
    } else if(typeof(input.selectionStart)!="undefined") pos = input.selectionStart;
    return pos;
};</code>

Réglage de la position du curseur:

<code class="language-javascript">jQuery.fn.setCursorPosition = function(pos) {
  this.each(function(index, elem) {
    if (elem.setSelectionRange) {
      elem.setSelectionRange(pos, pos);
    } else if (elem.createTextRange) {
      var range = elem.createTextRange();
      range.collapse(true);
      range.moveEnd('character', pos);
      range.moveStart('character', pos);
      range.select();
    }
  });
  return this;
};</code>

Réglage de la position du curseur (alternative):

<code class="language-javascript">function setCursorPos(node,pos){
    var node = (typeof node == "string" || node instanceof String) ? document.getElementById(node) : node;
    node.focus(); // Crucial for Firefox
    if(!node) return false;
    else if(node.createTextRange){
        var textRange = node.createTextRange();
        textRange.collapse(true);
        textRange.moveStart('character', pos);
        textRange.moveEnd('character', 0);
        textRange.select();
        return true;
    }else if(node.setSelectionRange){
        node.setSelectionRange(pos,pos);
        return true;
    }
    return false;
}</code>

Questions fréquemment posées:

La section FAQ fournit des explications claires de setSelectionRange, selectionStart, selectionEnd, de la compatibilité du navigateur et de la gestion des paramètres. Les réponses sont concises et précises. Aucun changement n'est nécessaire ici.

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!

Déclaration:
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
Article précédent:Syntaxe et astuces JSONArticle suivant:Syntaxe et astuces JSON