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);
2 回答
再次阅读语法:获取CKEDITOR对象并告诉它回调函数,因此它完全符合您的要求 .
服务器不应返回javascript以供客户端呈现 .
即使以下是一个丑陋的丑陋...丑陋的黑客..我仍然更喜欢它从服务器发送javascript:
(上传图像后在编辑器中自动插入图像的示例 - 适用于4.4.7)
当然,正确的方法是创建自定义插件 .