В Интернете есть множество редакторов WYSIWYG, но мне еще предстоит найти ту, которая реализует реализацию drag-n-drop.
Легко создать собственный редактор, но я хочу, чтобы пользователь мог перетаскивать элементы (т.е. токены) из-за пределов редактируемой области и оставлять их по месту их выбора внутри редактируемой области.
Легко вводить html в определенном месте редактируемого элемента, но как определить, где должна быть каретка, когда пользователь перетаскивает DIV над некоторым элементом в области редактирования. Чтобы лучше проиллюстрировать то, что я пытаюсь объяснить, см. Следующий сценарий.
Редактируемая область (либо IFRAME в режиме редактирования, либо DIV с атрибутом contentEditable, установленным в true) уже содержит следующий текст:
"Дорогой, пожалуйста, обратите внимание..."
Теперь пользователь перетаскивает элемент, представляющий некоторый токен из списка элементов, над редактируемой областью, перемещая курсор над текстом, пока каретка не появится перед запятой (,) в тексте, как показано выше. Когда пользователь отпускает кнопку мыши в этом месте, будет добавлен HTML, который может привести к чему-то вроде этого:
"Дорогой {UserFirstName}, пожалуйста, обратите внимание...".
Я не знаю, когда-либо делал что-либо подобное, или, по крайней мере, знал, как это можно сделать с помощью JavaScript.
Любая помощь будет принята с благодарностью.