Визуальный редактор своими руками
Всем привет.
Готовые решения не приемлю, хочу своё + опыт. Прежде чем начать реализацию, хочу задать пару вопросов. Реализовать редактор хочу при помощи contenteditable Многие из вас знаю, что contenteditable ведет себя по разному в разных браузерах и даже одних и тех же браузерах, но разных версиях. К примеру: Переносы в хроме добавляются так <p><br></p> а в мозиле так <br> ну и разные другие особенности. Что я хочу сделать, вот что: Перехватывать нажатия символьных клавиш и полностью управлять вставкой символом и тегов, то-есть, отменять действия по умолчанию и полностью добавлять и удалять символы, теги и т.д. Если подобное реализовать, будут ли тормоза при печатании или удалении символов (на средних компах)? У кого какой опыт в этом? Стоит ли вообще так делать или же это плохо? И так ли реализованы популярные визуальные редакторы? |
Цитата:
|
Цитата:
|
kostyanet,
Дело в том, что мне не нужен функционал Бога. Мне хватит того, чтобы можно было задавать текст жирным, курсивом и некоторыми цветами, но то для чего я все это затеял это картинки, которые я хочу вставлять прямо в редактор и свой мини плеер на HTML5 при загрузки песен, а еще добавление смайлов и прочая мелочь. Функционал как в Ворде ни к чему. А готовые решения тормозные, мне это не нравится, да и хрен их под себя переделаешь там столько кода, даже залезать не хочется туда. А свое решение всегда можно доделать, переделать и т.д. и это будет гораздо приятнее, удобнее и проще! |
http://ckeditor.com/demo#widgets
Вот вам минимальный функционал. Можно вообще все кнопки убрать. Редактор - это очень много кода, и сложная задача. Я не думаю что у вас получится сделать что-то приличное с помощью "contenteditable". |
tsigel,
Я юзал и этот редактор и многие другие. Меня ни один из них не устраивает! Почему вы считаете, что с Contenteditable не получится реализовать нормальный редактор? Разе для этого недостаточно в современном браузере инструментов? |
Contenteditable не генерит никаких событий и никакие попытки навесить таковые не увенчаются, ибо это не научно.
Попытки конечно есть, однако возникает резонный вопрос: зачем пересаживать гипофиз человека собаке, если любая баба вам нарожает людей просто за еду? Contenteditable вообще не для этого сделан, для чего вы хотите приспособить этот атрибут. Вот например у меня есть страница ценника товара - которая для печати на бумаге. На этой странице вообще никакого интерфейса быть не может, иначе он напечатается вместе с ней. Но бывает что цена товара в бд не актуальна, или там надо укоротить или дописать наименование или еще какие-то параметры - я делаю эти элементы contenteditable='true' и операто спокойно все правит и печатает. Без сохранения, конечно. Кстати, надо проверить еще - в файл изменения запишутся? |
Проверил - так и есть, сохраняет изменения на диск. Вот и ответ для чего редактируемый контент.
|
kostyanet,
А какие вам еще события нужны? Чем вас не устраивают keypress, keydown и прочие? А управлять содержимым и т.д. можно через range и selection объекты. Что из этого вас смущает? |
Это они вам нужны, мне-то нахрен. Вы все равно нифига не поняли и поймете только когда начнете мастырить свой лисапед. Вот и начинайте.
|
Часовой пояс GMT +3, время: 11:31. |