我正在使用 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/