[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вставка в textarea по клику. Проблема с IE.
waldicom
Всем здрасти. Появился вопрос.
По клику на определенном <span>'e в textarea вставляется текст. Обработка клика выглядит так (jQuery):

Код

jQuery(function($)  {
   $('#email').click(function(){
       insertAtCaret('textarea_id', 'text');
   });
});  



Функцию insertAtCaret() взял в инете. Выглядит она так:

Функция insertAtCaret

Код

function insertAtCaret(areaId,text) {
   var txtarea = document.getElementById(areaId);
   var scrollPos = txtarea.scrollTop;
   var strPos = 0;
   var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ? "ff" : (document.selection ? "ie" : false ) );
   if (br == "ie") {
       txtarea.focus();
       var range = document.selection.createRange();
       range.moveStart ('character', -txtarea.value.length);
       strPos = range.text.length;
   } else if (br == "ff"){
       strPos = txtarea.selectionStart;
   }
 
   var front = (txtarea.value).substring(0,strPos);
   var back = (txtarea.value).substring(strPos,txtarea.value.length);
   txtarea.value=front+text+back; strPos = strPos + text.length;
   if (br == "ie") {
       txtarea.focus();
       var range = document.selection.createRange();
       range.moveStart ('character', -txtarea.value.length);
       range.moveStart ('character', strPos);
       range.moveEnd ('character', 0); range.select();
   } else if (br == "ff") {
       txtarea.selectionStart = strPos;
       txtarea.selectionEnd = strPos; txtarea.focus();
   }
   txtarea.scrollTop = scrollPos;
}


Странность в ИЕ проявляется тогда, когда:
  • клик на <span>'е - текст вставляется в правильную позицию
  • затем клик просто в любом месте странице
  • затем клик снова на <span>'е - текст вставляется не в ту позицию в textarea, где курсор.
Может кто поможет, где курить?
Заранее спасибо.



Спустя 18 минут, 26 секунд (30.08.2009 - 13:30) waldicom написал(а):
Вот, добавил мультик на youtube, чтобы понятнее было.

Firefox, все нормально
IE, работает неправильно

Спустя 1 час, 27 минут, 32 секунды (30.08.2009 - 14:57) Гость_hara написал(а):
вот тут есть ответ

Спустя 2 минуты, 24 секунды (30.08.2009 - 15:00) Гость_hara написал(а):
а ну и так, - если интересно вдруг станет http://habrahabr.ru/blogs/javascript/55922/


_____________
Свои мозги еще никто не отменял.
Телепатов нету.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.