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.
Obtenir la position du curseur:
jQuery.fn.getCursorPosition = function(){ if(this.length == 0) return -1; return $(this).getSelectionStart(); };
Obtenir le démarrage de la sélection:
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; };
Réglage de la position du curseur:
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; };
Réglage de la position du curseur (alternative):
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; }
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!