comment définir le focus dans l'index requis sur la zone de texte pour l'opéra
-
07-07-2019 - |
Question
J'ai une zone de texte où je dois définir le focus / le curseur à l'index requis de la zone de texte dans le navigateur d'opéra.
La solution 2
Votre code fonctionne bien, mais vous vous heurtez à l'opéra.
becoz l'extrait de code suivant
if(elem.createTextRange) {
est également vrai pour l'opéra, mais createTextRange ne sera supporté que par IE.
J'ai donc changé peu de modification dans votre code
function SetCaretPosition(elemId, caretPos) {
var elem = document.getElementById(elemId);
if (elem != null) {
if ($.browser.msie) {
if (elem.createTextRange) {
var range = elem.createTextRange();
range.move('character', caretPos);
range.select();
}
}
else {
if (elem.selectionStart) {
elem.focus();
elem.setSelectionRange(caretPos, caretPos);
}
else
elem.focus();
}
}
}
Autres conseils
function SetCaretPosition(elemId, caretPos) {
var elem = document.getElementById(elemId);
if(elem != null) {
if(elem.createTextRange) {
var range = elem.createTextRange();
range.move('character', caretPos);
range.select();
}
else {
if(elem.selectionStart) {
elem.focus();
elem.setSelectionRange(caretPos, caretPos);
}
else
elem.focus();
}
}
}
elemId: id de l'élément
caretPos: position du curseur
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow