Я начал проект с открытым исходным кодом "sourceforge", чтобы сделать текстовый редактор примерно полтора года назад. Я никогда не понимал, как получить свой код, но для его разработки мне пришлось исследовать, как работает «режим редактирования контента» в IE и Firefox. Мои исследования включали в основном веб-сайт Firefox и веб-сайт Microsoft.
Код, который я видел, чтобы сделать это, был уродливым и не очень OO-дружественным (извините, я фанат объектов, я не могу с этим поделать), поэтому потребовалось много ре-факторинга, чтобы войти в форму, которую я может развиваться и расширяться.
К сожалению, даже если вы будете следовать функциональности, предоставляемой браузером в «режиме редактирования контента», у вас все равно останется редактор, полный ошибок. Причина этого заключается в том, что «режим редактирования контента» не работает согласованно с вставкой из MS Word (все пробуют это делать) или созданием нумерованных списков, и создаваемая им разметка будет непоследовательной и плохо сформированной.
Вот почему я сейчас использую TinyMCE . TinyMCE полон дизайнерских решений, которых я бы лично избежал, но они исправили большинство ошибок, которые вы получите при попытке создать свой собственный редактор. Он также полон функций, которые позволят вам настроить его под свои нужды.
Я не могу рекомендовать что-либо еще, потому что я действительно не пробовал альтернативы.
Хотя TinyMCE кажется лучшим вариантом, для меня это все еще большая головная боль, потому что вставка документов Word все еще непредсказуема, обещание WYSIWYG в HTML действительно не возможно, но клиент ожидает этого, и есть много проблем, которые накапливаются как только вы начнете позволять пользователям помещать необработанный HTML в вашу базу данных. (особенно если в вашей кодовой базе есть последние части, обновленные в 1993 году ...)