Как сделать WYSIWYG на jQuery?

Объяните на пальцах как сделать простой визивиг-редактор по типу TinyMCE или CKEditor. Меня интересует именно идея без всех тонкостей. Спасибо.
  • Вопрос задан
  • 5669 просмотров
Пригласить эксперта
Ответы на вопрос 11
Kobs
@Kobs
Нужно использовать designMode document property. Открывать документ в designMode можно в iframe.
Как то так:
document.writeln(' iframe id="' + editor + '" /iframe ');
var edit = document.getElementById(editor).contentWindow.document;
edit.designMode = "On";

в коде парсер жрет "<" и ">" (

Я когда то писал с нуля WYSIWYG, если надо могу поискать исходники.
Ответ написан
Finom
@Finom
Была идея написать небольшую статью, представив простейший редактор в 2 КБ с использованием jQuery но потом забил (сам редактор есть, дизайнить лень). Если вам интересно, отдам код при личной переписке.
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
еще можно покопать в исходниках imperavi
Ответ написан
Комментировать
nekt
@nekt
программист
Когда я ковырялся с таким, вариант с designMode мне не очень понравился — обилие левых тегов, сложности с их перекрытием и подобное. В итоге я склоняюсь к созданию и позиционированию различных инпутов со стилизацией их под редактируемый элемент.

А гуглодоксы, насколько я помню, просто отлавливают события нажатий на клавиши клавиатуры, подставляя их жаваскриптом в то место, где установлен курсор. Курсор, кстати там тоже рисуется вручную — он не нативный.
Ответ написан
Alroniks
@Alroniks
MODX Джедай, работаю с Laravel
Посмотрите imperavi. Может и писать ничего не нужно будет. А если нужно — лицензия там открытая, можно посмотреть реализацию и допилить или сделать свой с блекджеком.
Ответ написан
@aps
+1 за imperavi. Самый внятный код. Лучше всего подходит для изучения.
Но идея писать CKEditor явно нездоровая — утонете в кроссброузерности.
Тот же imperavi приходится допиливать
Ответ написан
Комментировать
un1t
@un1t
Я написал свой WYSIWYG правда, он пока еще в IE не полностью работает, но для моих целей хватает.
github.com/un1t/pencil

Кода мало, легко разобраться. Самому писать, визивиг дело тяжкое, но допиливать чужое еще более тяжкое. Если поправить пару неработающих моменов в IE то можно будет вполне нормально пользоваться.

Если есть желание, можешь помочь мне допилить его.
Ответ написан
Комментировать
@Apx
Java/JavaEE/Javascript developer
nicEdit. Можно выбрать элементы которые будут отображаться на панели. Если всё же хочется изобрести велосипед, посмотрите его сорцы и напишите на jquery (хотя вобще вариант неочень, jquery как доп зависимость.. .)
Ответ написан
homm
@homm
Вот статья для начала: blog.whatwg.org/the-road-to-html-5-contenteditable
Ответ написан
Комментировать
dio
@dio
Если интересно исходники посмотреть — можете в нашем монстрике покопаться github.com/Studio-42/elRTE
Ответ написан
Комментировать
gorbulevsv
@gorbulevsv
Самоучка
Парни, недавно попался сайт, где написано как просто реализовать этот wysing. Често говоря, был в восторге.
Вот ссылка: www.pvsm.ru/javascript/24443. Или тоже самое: https://habr.com/post/161715/.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы