Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определить расположение курсора в элементе ввода 
:(
    Опции темы
Loengreen
Дата 27.12.2007, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



Собственно вопрос:
Как определить место расположение курсора в элементе ввода?

(Имеется input, в него вбит текст. Нужно определить в конце или в начале строки находится курсор и, если есть возможность, в том случае если курсор находится между символами, какие символы слева (справа) расположены от курсора).

Можно ли это сделать? 
Если да, какими объектами пользоваться или где читать?


Заранее благодарю! 


Это сообщение отредактировал(а) Loengreen - 27.12.2007, 16:44
PM MAIL   Вверх
Loengreen
Дата 28.12.2007, 03:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



Неужели нельзя это сделать? :(
PM MAIL   Вверх
AKS
Дата 28.12.2007, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(Loengreen @  28.12.2007,  03:00 Найти цитируемый пост)
Неужели нельзя это сделать? :(

Был бы уместней вопрос: "Но ведь это как-то реализовано в редакторах сообщений или еще каких-нибудь?...".

PM MAIL   Вверх
ksnk
Дата 28.12.2007, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



В чате DDK chat использовалась такая вот функция для вставки тегов форматирования в строку ввода в позиции курсора
Код

function doInsert(codes,codee) {
    var msg =document.getElementById('msgtext'); 
    if(codee === undefined) codee='';
  // firefox
    if("selectionStart" in msg)
    {
        var val = msg.value;
        msg.value = val.substring(0, msg.selectionStart) + codes +
                 val.substring(msg.selectionStart, msg.selectionEnd) + codee +
                 val.substring(msg.selectionEnd, val.length);
    }
    // ie win
    else if (document.selection && document.selection.createRange) {
        var rng = document.selection.createRange( );
        if ((rng.text) && (rng.text!="")) {
            rng.text = codes + rng.text + codee;
        }else  {
            if (msg.caretPos) {
                var caretPos = msg.caretPos;
                caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' '
                         ? caretPos.text + codes  + codee + ' '
                         : caretPos.text + codes  + codee;
            } else
                msg.value = msg.value + codes  + codee;
        }
    } else {
    //  if (!window.opera) range.select();
      msg.value = msg.value + codes  + codee;
    }
    msg.focus();
} ;

Я ее как-то поправил, вставляя в проект, но в достаточной степени декоративно. Она относительно коректна, но, вероятно, нуждается в трезвом осмыслении и оптимизации, у меня как-то руки до этого не дошли ;-)




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
InfMag
Дата 28.12.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



msg.selectionStart, msg.selectionEnd ???
PM   Вверх
ksnk
Дата 28.12.2007, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(InfMag @  28.12.2007,  11:19 Найти цитируемый пост)
msg.selectionStart, msg.selectionEnd ???

Дык!


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0518 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.