Программисты, пишущие плагины на редактор ckeditor наверняка заметили, что начиная с версии 4, редактор идет с плагином codemirror для редактирования исходного текста. Когда-то давно, сам хотел подружить его с ним. Так и не дошли руки, теперь же он предустановлен. Но частью API ckeditor не является. Поэтому возникает проблема, если приходится работать в режиме исходного текста: как работать с плагином codemirror в ckeditor из другого плагина.
Раньше, работа с исходным текстом в редакторе была довольно тривиальна. это был обычный нативный textarea. Теперь все немного сложнее, или проще, это смотря с какой стороны смотреть.
Проще, потому что у codemirror есть свое API для работы с текстом, и не надо каждый раз изобретать велосипед.
С проблемой доступа к API плагина я столкнулся при разработке одного своего плагина статистики. И вот, как я ее решил
if ( editor.mode == 'wysiwyg' ){ // работаем с обычным API ckeditor }else{ if(!window["codemirror_"+editor.id]) // работаем с обычным texterea else{ var codemirror = window["codemirror_"+editor.id]; // работаем с API codemirror } }
все просто, но в доках такой информации нет. Пришлось изрядно по трассеровать код, чтобы дойти до этого. Вам значительно проще.
Теперь можно использовать API великолепного редактора кода codemirror. К примеру выведем выделенный в данный момент исходный код
var codemirror = window["codemirror_"+editor.id]; alert(codemirror.getSelection())
В отличие от аналогичного метода у ckeditor ( я уже писал, как там все не просто), данный метод вернет кусок исходного кода.
Полный список доступных методов можно прочесть в официальной документации.
При разработке сайтов, написание таких продуманных плагинов сильно облегчает жизнь редакторам нового проекта. Ведь цена создания сайта итак велика. А уж труд рерайтеров и редакторов текстов и вовсе бесценен.
Комментарии
Подробнее: https://slaed.net/index.php?name=news&op=view&id=636