Javascript 在编辑器中上载回调

Javascript 在编辑器中上载回调,javascript,ckeditor,Javascript,Ckeditor,我正在尝试配置CKEditor,以允许用户从其计算机上载图像。我正在使用filebrowserUploadUrl,因此我可以将图像上载到服务器并获取分配给它的URL,但我不知道如何将URL传递给实际的编辑器 网络上的一些例子谈到从服务器返回类似parent.CKEDITOR.tools.callFunction…,但我认为这很难看,有没有办法告诉CKEDITOR上传图像后,调用此函数“?再次阅读语法:获取CKEDITOR对象并告诉它回调函数,这样它就完全可以执行您想要的操作 服务器不应返回jav

我正在尝试配置CKEditor,以允许用户从其计算机上载图像。我正在使用filebrowserUploadUrl,因此我可以将图像上载到服务器并获取分配给它的URL,但我不知道如何将URL传递给实际的编辑器


网络上的一些例子谈到从服务器返回类似
parent.CKEDITOR.tools.callFunction…
,但我认为这很难看,有没有办法告诉CKEDITOR上传图像后,调用此函数“?

再次阅读语法:获取CKEDITOR对象并告诉它回调函数,这样它就完全可以执行您想要的操作

服务器不应返回javascript供客户端呈现

尽管以下是一个丑陋的。。。丑陋的黑客。。与从服务器发送javascript相比,我仍然更喜欢它:

(上传图像后自动将图像插入编辑器的示例-适用于4.4.7)


当然,正确的方法是创建自定义插件。

是的,对不起,我的意思是:有没有一种方法可以从客户端(javascript)设置回调,而不是让服务器本身返回javascript调用?没有,这将比当前的API更复杂。
var onUploadImage = function (dialog) {

    // Get the contents in the iframe
    var iframe = $('.cke_dialog_ui_input_file iframe');
    iframe.one('load', function(ev) {
        var fileUrl = ev.target.contentDocument.body.innerText;
        dialog.getContentElement('info', 'txtUrl').setValue(fileUrl);
        $(".cke_dialog_ui_button_ok span").click();
    });
};

var onLoadImageDialog = function () {
    var dialog = CKEDITOR.dialog.getCurrent(); 

    // Open default tab
    this.selectPage('Upload');

    $('.cke_dialog_ui_fileButton').click(onUploadImage.bind(null, dialog));
};

var onDialogDefinition = function( ev ) {
    var name = ev.data.name;
    var definition = ev.data.definition;
    if ( name !== 'image' ) {
        return;
    }
    definition.onLoad = onLoadImageDialog
};

CKEDITOR.on('dialogDefinition', onDialogDefinition);