Роман Б.
42 сообщения
#15 лет назад
Во всех браузерах (за исключением IE конечно) selectionEnd в текстовом поле определяется нормально, но в браузере Opera 10.53 он равен selectionStart, правдо программно selectionEnd устанавливается как нужно.

попробуйте пожалуйста этот тестовый js код в опере, предварительно выделив текст в текстовом поле

<input id = 'q' type = 'text' value = 'text'><BR>
<a href = "javascript:get_selection()">пулучить selectionStart и selectionEnd</a><BR>
<a href = "javascript:set_selection()">Установить программно</a><BR>

<script>
function get_selection()
{
var q = document.getElementById('q');
var kursor_end = q.selectionEnd;
var kursor_start = q.selectionStart;
alert (kursor_start+"|"+kursor_end);
}

function set_selection()
{
var q = document.getElementById('q');
q.selectionEnd = 4;
q.selectionStart = 0;
}
</script>


Это баг?
Михаил В.
2195 сообщений
#15 лет назад
Не совсем. При клике по ссылке пропадает фокус с input'а, следовательно в нем пропадает выделение, т.е. выделением становитсся текущая позиция курсора.
Проверить очень просто:
<input id = 'q' type = 'text' value = '1234567890' onmouseup="get_selection()"><BR>

Ну а как выкручиваться - это уже вам решать, в зависимости от ситуации.
Роман Б.
42 сообщения
#15 лет назад
Sir_Michael, огромное спасибо за ценную подсказку, по событию onselect постараюсь запоминать позиции.