На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU, ANDLL, fatalist
  
> Chrome не обновляет позицию курсора, если он сдвигается Backspace`ом?
    Есть функция, которая вставляет текст или символ в поле textarea в позицию курсора. Все отлично работает. Но в Хроме текст вставляется в то место, где курсор был до его смещения влево Backspace`ом. Если курсор ставится мышкой или перемещается стрелочками влево, вправо, то работает нормально. Видимо, Хром не обновляет позицию курсора, только если он смещается Backspace`ом. Проверял в Firefox. Там никаких глюков нет.

    Код кажется нелогичным, потому что я немного упросил функцию, на самом деле также могут вставляться парные теги вокруг выделенного текста, но суть глюка не меняется.
    ExpandedWrap disabled
      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();
        }
      }

    Действительно есть такой глюк в Хроме или это у меня где-то ошибка?
    Сообщение отредактировано: S.Eugene -
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0230 ]   [ 15 queries used ]   [ Generated: 23.04.24, 13:27 GMT ]