Как получить доступ к экземплярам кнопок, сгенерированным в TinyMCE 4, из-за пределов метода onPostRender?

Я хочу отключить все кнопки в TinyMCE4 после создания экземпляра редактора. TinyMCE4 удалил возможность доступа к кнопкам внутри controlManager. В TinyMCE3 вы можете сделать это:

_.each(editor.controlManager.controls, function (property, index, controls) {
    controls[property.id].setDisabled(disabled);
});

Похоже, что единственный способ получить доступ к инкапсулированному экземпляру кнопки, сгенерированному TinyMCE4, — через метод postRender:

editor.addButton('example', {
    title: 'My title',
    image: '../js/tinymce/plugins/example/img/example.gif',
    onPostRender: function () {
        // this refers to button instance generated by TinyMCE4, where disabling/enabling functionality is available
    }
});

Я работаю над пользовательской CMS с интеграцией сторонних плагинов WYSIWYG, поэтому у меня нет возможности изменить метод onPostRender для всех кнопок, которые будут использоваться в редакторе. Есть ли способ получить доступ к панели инструментов или экземпляру кнопки из объекта редактора, чтобы я мог вызвать его метод disabled, как описано в источнике здесь:

  /**
   * Sets/gets the disabled state on the control.
   *
   * @method disabled
   * @param {Boolean} state Value to set to control.
   * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get.
   */
  // disabled: function(state) {} -- Generated

Я использую TinyMCE 4.6.4.


person danronmoon    schedule 05.01.2018    source источник


Ответы (1)


editor.theme.panel.rootControl.controlIdLookup содержит ссылки на все кнопки на панели инструментов.

person danronmoon    schedule 05.01.2018