tinymce теряет позицию каретки

У меня есть пользовательская кнопка tinymce, которая переключает смайлики div рядом с textarea.

onclick : function() {
  ed.focus();
  $('#my-input').toggleClass('with-emoticons');
  $('#emoticons').toggleClass('emo-visible');
}

когда я нажимаю кнопку, смайлики div показал, но курсор идет от конца к началу моего текста.

Как я могу сохранить позицию каретки при нажатии пользовательской кнопки?

1 ответов


похоже, вам нужно использовать закладки

onclick : function() {
  ed.focus();

  var bookmark = ed.selection.getBookmark();

  $('#my-input').toggleClass('with-emoticons');
  $('#emoticons').toggleClass('emo-visible');

  ed.selection.moveToBookmark(bookmark); 
}

используемый здесь тип закладки - это HTML-закладка, которая представляет собой невидимый промежуток в Редакторе html. Функция getBookmark также может создавать закладки без html. Для этого вы можете позвонить ed.selection.getBookmark(2, true); для получения дополнительной информации о закладках tinymce посмотрите на docs.