Javascript Text Editor Основные функциональные возможности - PullRequest
2 голосов
/ 13 февраля 2012

Я пытаюсь написать свой собственный текстовый редактор WYSWG на Javascript, но я борюсь с тем, что кажется довольно простой проблемой.

С учетом выделения текста внутри области contentEditable, например, что находится между трубами '|' здесь:

<span class="italic">Some text that |I would want</span> to edit or| select

Я могу выяснить, что мне нужно сделать, чтобы по существу переместить тег закрывающего интервала, чтобы мой выбор был включен в интервал курсивом. Тем не менее, есть множество других случаев, которые мне нужно учитывать, например, если я хочу удалить диапазон, добавить еще один диапазон вокруг области, которая уже содержит диапазон открытия или закрытия, счет для открытия / закрытия других типов тегов вокруг моего выбор и т. д.

Есть ли какая-нибудь библиотека, которая существует где-нибудь, которая обеспечивает эту логику выбора / замены для меня? Или я слишком много спрашиваю? Будет ли лучше использовать один из многих редакторов, уже доступных в Интернете?

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

1 Ответ

2 голосов
/ 14 февраля 2012

Ознакомьтесь с Rangy и его модулями http://code.google.com/p/rangy/ http://code.google.com/p/rangy/#Modules

ContentEditable - отвратительный зверь со множеством странностей между браузерами.Рэнджи пытается решить эту проблему, но с ней все еще трудно работать.В моем проекте много пользовательских правил, поэтому нам пришлось использовать библиотеку более низкого уровня, такую ​​как Rangy.В сочетании с JQuery это очень мощный.

...