javascript - CKEDITOR 初始化时没有为任何对话框调用“dialogDefinition”事件?

标签 javascript dialog ckeditor

我正在使用 dialogDefinition 事件来更改增强图像插件的 image2 对话框的定义。我正在使用这段代码 -

CKEDITOR.appendTo("editor1" ,
      {
          on: {
              dialogDefinition: function (ev) {

                  console.log("Inside dialog definition");
                  var dialogName = ev.data.name;
                  var dialogDefinition = ev.data.definition;
                  if (dialogName == 'image2') {
                    console.log("Inside Upload");
                    dialogDefinition.removeContents('Upload');
                    dialogDefinition.addContents({
                    title: "Upload",
                    id: "upload",
                    label: "Upload",
                    elements: [{
                     type: "html",
                     html: "<form>{%csrf_token%}<input id='imageupload' type='file' name='files[]'/></form>"
                    }]
                 });
                }
                },
            },

但是当我点击任何对话框时,这个事件没有被调用,因为控制台消息没有被打印并且 image2 对话框的定义没有改变。

有什么方法可以查明为什么没有调用此事件或如何让它起作用?

最佳答案

请注意 dialogDefinition事件属于 CKEDITOR , 不是 CKEDITOR.editor .在 dialogDefinition 上监听的正确方式是这样的:

CKEDITOR.on( 'dialogDefinition', function( ev ) {
    var dialogName = ev.data.name;
    var dialogDefinition = ev.data.definition;

    ...
});

关于javascript - CKEDITOR 初始化时没有为任何对话框调用“dialogDefinition”事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422539/

相关文章:

IE6 中的 Javascript 执行顺序

python - 如何测试是否已创建 GTK+ 对话框?

javascript - Laravel ckeditor 数据未插入数据库

plugins - 在 CKEditor 中创建代码块 <code> 或 <pre>

javascript - 如何在 CSS3 动画期间将 div 隐藏在另一个下面

javascript - IE 中的 InnerHTML/outerHTML 不反射(reflect)复选框状态,但在怪癖模式下除外

javascript - AngularJS module.controller 与 $controllerProvider.register

jQueryUI 对话框/日期选择器自动打开

android - Activity 泄漏了最初添加的窗口

javascript - CKEditor 4 getEditor 不工作