[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: textarea
Professor
Подскажите пожалуйста,как в textarea добавить смайлик именно там где стоит курсор.
Пока я додумался только до этого
Код
function smile(smile,id)
{
document.getElementById("textarea2").value+=" ";
document.getElementById("textarea2").value+=smile;
document.getElementById("textarea2").value+=" ";
}

smile тут это тип *lol*,*kon*,и так далее



Спустя 53 минуты, 27 секунд (23.10.2007 - 12:20) vasa_c написал(а):
Снизу есть форма быстрого ответа.

Спустя 15 минут, 45 секунд (23.10.2007 - 12:36) Professor написал(а):
??? wacko.gif я попробовал разобраться в коде,но чет не получилось unsure.gif

Спустя 3 часа, 54 минуты, 20 секунд (23.10.2007 - 16:30) vasa_c написал(а):
Ваша главная задача запомнить позицию курсора в поле ввода, перед тем, как оно потеряет фокус (при нажатии на кнопку). Посмотрите, какие действия выполняются первым делом при нажатии на здешние кнопки.

Спустя 20 минут, 52 секунды (23.10.2007 - 16:51) Professor написал(а):
Вот функция вставки смайликов (может я и ошибаюсь(что скорей всего))
Код
            function add_smilie(scode, smid)
            {
                var _image = document.getElementById(smid).src;
                _image     = _image.replace( /.*\/(.+?)$/, "$1" );
                try
                {
                    opener.IPS_Lite_Editor[ 'fast-reply' ].insert_emoticon( smid.replace( 'smid_', '' ), _image, scode, this );
                }
                catch(error)
                {
                }
            }

Смотрю сюда как на китайскую грамоту crying.gif

Спустя 17 часов, 18 минут, 32 секунды (24.10.2007 - 10:09) vasa_c написал(а):
Вам нужно:
1. Отловить щелчок по иконке смайла
2. При этом щелчке textarea будет терять фокус, поэтому вам нужно так же отловить это событие и запомнить положение курсора.
3. Вставить нужный смайт в TA в сохраненной позиции курсора.
4. Вернуть фокус на TA с курсором в нужном месте.

Какие мысли, наработки, затруднения, вопросы по каждому пункту?

Спустя 2 дня, 31 минута, 40 секунд (26.10.2007 - 10:41) Professor написал(а):
1. OnMauseClick (add_smilie("...","...")); Так?
2. var xxx = parent.frames['xxx'].document.forms["xxx"].elements['xxx'];
selStart=xxx.selectionStart;
selEnd=xxx.selectionEnd; Так?
3. Тут не знаю
4. Тут тоже.

Спустя 1 час, 12 минут, 37 секунд (26.10.2007 - 11:54) vasa_c написал(а):
Ловите onClick на смайлике. В обработчике:

1. Ищите позицию курсора в TA.
В FF и Opera для этого можно использовать TA.selectionStart, TA.selectionEnd.
В IE создать объект с помощью TA.createTextRange(). Какие там у него свойства не помню, посмотрите.

2. Вставить нужный текст в нужное место, т.е. изменить TA.value. Может помочь slice().

3. Вернуть фокус полю в нужном месте.
Для FF - TA.setSelectionRange()
Для IE - TA.focus(здесь, по, моему адрес курсора);


_____________
Легче всего создаются трудности
Быстрый ответ:

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