Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.142.53.68] |
|
Сообщ.
#1
,
|
|
|
Есть функция, которая вставляет текст или символ в поле textarea в позицию курсора. Все отлично работает. Но в Хроме текст вставляется в то место, где курсор был до его смещения влево Backspace`ом. Если курсор ставится мышкой или перемещается стрелочками влево, вправо, то работает нормально. Видимо, Хром не обновляет позицию курсора, только если он смещается Backspace`ом. Проверял в Firefox. Там никаких глюков нет.
Код кажется нелогичным, потому что я немного упросил функцию, на самом деле также могут вставляться парные теги вокруг выделенного текста, но суть глюка не меняется. function str_insert( str, ta ) //ta = textarea { ta.focus(); if( typeof(ta.selectionStart) != "undefined" ) { var start = ta.selectionStart; var end = ta.selectionEnd; var slen = end-start; var scrollTop = ta.scrollTop; var rs = (ta.value.substr(start, slen)) + str; ta.value = ta.value.substr(0,start) + rs + ta.value.substr(end); ta.setSelectionRange(start+rs.length, start+rs.length); ta.scrollTop = scrollTop; ta.focus(); } } Действительно есть такой глюк в Хроме или это у меня где-то ошибка? |