23 апреля 2013 г.

Rangy — серьезная работа с текстом в Javascript

Недавно по работе мне пришлось писать интерфейс и функционал основанный на работе с текстом. Круг задач сводился к определению и запоминанию (в текстовом виде для хранения в базе данных) "координат"-диапазона выделенного текста или места где пользователь кликнул кнопкой, а так же получению текста внутри выделения или около клика и его визуальном оформлении для последующего воспроизведения.


Большинство реализаций виденных мною в сети так или иначе сводилось к работе с DOM, что не может устроить при работе с большими объёмами текста.

После непродолжительного поиска я набрёл на кроссбраузерную javascript-библиотеку Rangy.

Это замечательное решение охватывает максимальный круг задач по работе с текстом, которые могут вам встретится в ваших веб-приложениях.

Перечислю основные достоинства:
  • Единое API и результат во всех современных браузерах (а с недавнего времени и в Internet Explorer 6-8)
  • Разделенность на модули в зависимости от поставленных задач
  • Работа как с html-форматированным текстом, так и с текстом внутри элементов ввода (input's, textarea)
  • Оборачивание в теги и css-форматирование фрагмента текста с которым вы работаете, при котором объект и диапазон исходного текста не меняется - т.е. если вы обернули какой-то фрагмент в оформляющий тег, то html-конструкция реализующая его игнорируется самим rangy для создания фиксированных диапазонов не зависящих друг от друга.
  • Исчерпывающая документация (на довольно прямом и внятном английском), примеры и активное сообщество, постоянно развивающее это библиотеку.
Осталось добавить что все эти замечательные вещи реализуются за счет того что библиотека работает напрямую с API каждого конкретного браузера.

Ссылка на страницу проекта на CodeGoogle: Rangy
Ссылку на скачивание последней версии можно найти здесь

Комментариев нет:

Отправить комментарий