Как я могу получать уведомления при вставке в редакторе TinyMCE 4.x

#ecmascript-6 #tinymce-4

#ecmascript-6 #tinymce-4

Вопрос:

Я использую редактор TinyMCE 4.4.3. Мне нужно получить содержимое редактора при его изменении, чтобы отобразить предварительный просмотр.

Я подключился к событию ‘change’, которое хорошо работает в большинстве случаев (включая Ctrl V), но не при вставке из контекстного меню браузера.

Вот мой код:

 tinymce.init({ 
    selector:'#editor',
    height: 400,
    statusbar: false,
    menubar: false,
    plugins: ['link'],
    toolbar: 'undo redo | styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | link |  bullist numlist outdent indent'
}).then(editors => {
    this.editor = editors[0];
    this.editor.on('change', () => this.refreshPreview());
});
  

Ответ №1:

Для справки, мне удалось решить эту проблему…

Мне пришлось включить плагин вставки и привязаться к событию вставки (это срабатывает только при включении плагина вставки).

 tinymce.init({ 
    selector:'#editor',
    height: 400,
    statusbar: false,
    menubar: false,
    plugins: ['link', 'paste'],
    toolbar: 'undo redo | styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | link |  bullist numlist outdent indent'
}).then(editors => {
    this.editor = editors[0];
    this.editor.on('change', () => this.refreshPreview());
    this.editor.on('paste', () => this.refreshPreview());
});