如何从 onPostRender 方法外部访问 TinyMCE 4 中生成的按钮实例?

How to get access to button instances generated in TinyMCE 4 from outside of onPostRender method?

我想在编辑器实例化后禁用 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
    }
});

我正在使用第三方 WYSIWYG 插件集成开发自定义 CMS,因此我无法修改将在编辑器中使用的所有按钮的 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

editor.theme.panel.rootControl.controlIdLookup 引用了工具栏中的所有按钮。