Javascript CKEditor对话框,在对话框弹出前钩住火

Javascript CKEditor对话框,在对话框弹出前钩住火,javascript,ckeditor,Javascript,Ckeditor,我有一个对话框,其内容通过解析当前页面的DOM来填充。我试过两种方法,但都不完全正确: CKEDITOR.on'dialogDefinition',…:此方法在第一次打开对话框时有效,但后续打开使用缓存的对话框定义,因此对DOM的任何更改都不会显示在对话框内容中 对话。在“显示”上,…:每次显示对话框时都会触发此方法,但它似乎是在计算了对话框的内容之后触发的 所以我的问题是:是否有一个钩子或其他方法,我可以使用它在每次打开对话框时填充内容?谢谢 编辑 这是一个基本的例子,我现在有什么,这不起作用

我有一个对话框,其内容通过解析当前页面的DOM来填充。我试过两种方法,但都不完全正确:

CKEDITOR.on'dialogDefinition',…:此方法在第一次打开对话框时有效,但后续打开使用缓存的对话框定义,因此对DOM的任何更改都不会显示在对话框内容中

对话。在“显示”上,…:每次显示对话框时都会触发此方法,但它似乎是在计算了对话框的内容之后触发的

所以我的问题是:是否有一个钩子或其他方法,我可以使用它在每次打开对话框时填充内容?谢谢

编辑

这是一个基本的例子,我现在有什么,这不起作用-没有嵌入消息显示在对话框中

CKEDITOR.plugins.add('embeds', {
  init: function(editor) {
    editor.on('dialogShow', function(event) {
      var dialog           = event.data,
          dialogDefinition = dialog.definition;

      if(dialog.getName() != "EmbedsDialog") return;
      var main   = dialogDefinition.getContents('main');

      main.add({
        type  : 'html',
        html : "<strong>There are no embeds yet! Add them below.</strong>"
      });
    });


    CKEDITOR.dialog.add('EmbedsDialog', function (instance) {
      return {
        title : 'Embeds',
        minWidth : 550,
        minHeight : 200,

        contents: [{
          id: "main",
          elements: []
        }],
      }; // return
    });

    editor.addCommand('Embeds',
      new CKEDITOR.dialogCommand('EmbedsDialog', {
        allowedContent: 'a[*](*)'
      })
    );

    editor.ui.addButton('Embeds', {
      label     : 'Embeds',
      command   : 'Embeds',
      toolbar   : 'embeds'
    });
  } // init
}); // add

使用事件查看:,@oleq查看我的编辑。行为与我尝试对话时相同。在“显示”中。。。