Вопрос № 73700: Здраствуйте уважаемые эксперты!
В яве я не особо силен, по этому мне не удалось реализовать вот такую функцию:
instext(textarr,texta,textb,offset);
Как она должна работать: я нажимаю на кнопку (вызывающую данную функцию), з...
Вопрос № 73.700
Здраствуйте уважаемые эксперты!
В яве я не особо силен, по этому мне не удалось реализовать вот такую функцию:
instext(textarr,texta,textb,offset);
Как она должна работать: я нажимаю на кнопку (вызывающую данную функцию), затем в поле на которое указывает объект textarr, происходят следующие действия:
1) Если есть выделенный текст, то он обрамляется texta и textb(как bb-code) (т.е. выделяю "текст" получаю "textaтекстtextb"), но затем курсор(каретка) смещается на offset символов вправо.
2) Если выделенного текста нет, то в позицию каретки(курсора) вставляется textatextb и курсор(каретка) смещается на offset символов вправо. Фактически работает как вставка смайлика только с перемещение курсора (именно его).
ЗЫ Советы типа "вырежи код из bb" - не устраивают. Желательно получить готовую функцию или ссылку на материал посвященный данному вопросу...
Отправлен: 01.02.2007, 22:29
Вопрос задал: J D (статус: 6-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, Golden Spider!
Ничего сложного в реализации такой функции нет. Введённый текст, позиция курсора и выделения читаются с помощью стандартных средств. См. код в приложении. А вот другой вопрос - осуществление совместимости с большинством браузеров. Здесь могут возникнуть проблемы, решать которые нужно с помощью отладчика и руководства по JavaScript. Свой код я проверил в Opera 9 - работает отлично. Ознакомиться с исходниками BBCode, наверное, не мешало бы. Возможно, там всё сделано более грамотно. Желаю удачи!
Приложение:
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор) Россия, Тула ---- Ответ отправлен: 02.02.2007, 00:19 Оценка за ответ: 5 Комментарий оценки: Ну вобщето работает очень криво и не во всех браузерах. Но спасибо за код, я нашел в нем нужные свойтва.