как установить фокус в нужном индексе на текстовое поле для оперы
-
07-07-2019 - |
Вопрос
У меня есть текстовое поле, в котором мне нужно установить фокус / курсор на нужный индекс текстового поля в оперном браузере.
Решение 2
Ваш код работает нормально, но в опере возникает конфликт.
becoz следующий фрагмент кода
if(elem.createTextRange) {
также верно для opera, но createTextRange будет поддерживаться только IE.
Так что я изменил небольшую модификацию в вашем коде
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();
}
}
}
Другие советы
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: идентификатор элемента
caretPos: положение курсора
Не связан с StackOverflow