2013-07-24 4 views
4

Я ищу несколько примеров того, как расширить существующий плагин tinymce (4.x), например. плагин «ссылка».Плагин расширения Tinymce 4.x

Плагин ссылок открывает диалоговое окно ... то, что я хотел бы сделать, это добавить событие, когда диалог открывается и модифицировать тело (вставьте дополнительный HTML-код с событиями щелчка).

Вроде бы проблематично сделать это красиво ... Я хочу, чтобы избежать какой-то «сверху» код как $('#mce_13').click(...); и лучше использовать что-то вроде

editor.on('DialogOpen', function(e) { 
    // if link dialog then 
    $(e.body).append('<div>My HTML</div>'); 
}); 

Однако нет таких событий, как onDialogOpen .. есть ли наилучшая практика для достижения этого?

ответ

5

мне удалось сделать это для модальных окон (я нуждался в функции обратного вызова для открытия/закрытия), возможно, вы могли бы построить на нем также обнаружить какой тип окна открываются:

tinymce.init({ 
    //... code and setup here 
    setup: function(editor) { 
     editor.on('init',function(e) { 
      setModalEvents(editor); 
     }); 
    }, 
    //... and more here perhaps 
}); 

, а затем сама функция:

// override modal methods to insert events 
function setModalEvents(editor) { 
    editor.windowManager.oldOpen = editor.windowManager.open; // save for later 
    editor.windowManager.open = function(t,r) { // replace with our own function 
     alert("modal window opened, insert callback here"); 
     var modal = this.oldOpen.apply(this, [t,r]); // call original 
     modal.on('close', function() { // set event for close 
      alert("modal window closed, insert callback here"); 
     }); 
     return modal; // Template plugin is dependent on this return value 
    }; 
} 

Вы могли бы сделать аналогичные переопределения других вещей в ядре tinymce, так что, возможно, это может быть полезно.

+1

Доступный для меня вариант :) –

Смежные вопросы