防止嵌套的ckeditor相互干扰

时间:2018-07-30 08:27:03

标签: javascript ckeditor ckeditor4.x

鉴于我有一个ckeditor,用户可以在其中键入RTF文本并插入许多自定义构建的小部件。小部件之一代表HTML格式,其中文本区域也允许用户编写RTF。这些textareas组件也集成了嵌入式ckeditor。该ckeditor仅配置了一些插件(字体,粗体,斜体,列表,颜色),并且实际上嵌套在外部插件中。外部编辑器配置了更多的编辑器插件。现在解决问题。当用户聚焦内部编辑器时,它的工具栏将显示出来并可以用于文本格式设置,但同时,外部编辑器的工具栏也可见,因此用户可能会尝试应用格式设置或插入不适用的小部件在嵌套编辑器中,从而导致错误。 因此,我想知道是否有一种方法可以防止嵌套编辑器干扰其祖先ckeditor。任何对其他方法的想法也将受到赞赏。

1 个答案:

答案 0 :(得分:0)

通过将父编辑器设置为只读,我设法完成了所需的工作,从而避免在集中内部编辑器时使用其工具栏。

  let parentEditorId = $(currentChildEditor).closest(parentEditor).attr('id');
  if (parentEditorId) {
    this.editor.on('focus', () => {
      CKEDITOR.instances[parentEditorId].setReadOnly(true);
    });

    this.editor.on('blur', () => {
      CKEDITOR.instances[parentEditorId].setReadOnly(false);
    });
  }