招数一:类插件
CKEDITOR.on('dialogDefinition', function( ev ){
var dialogName = ev.data.name;
var dialogDefinition = ev.data.definition;
if ( dialogName == 'image' ){
var infoTab = dialogDefinition.getContents( 'info' );
infoTab.add({
type : 'button',
id : 'upload_image',
align : 'center',
label : '上传',
onClick : function( evt ){
var thisDialog = this.getDialog();
var txtUrlObj = thisDialog.getContentElement('info', 'txtUrl');
var txtUrlId = txtUrlObj.getInputElement().$.id;
upfile_ajax_box(txtUrlId,'/upfiles/up.aspx?CKEditor=yes','CK文件上传',400,300);
}
}, 'browse'); //place front of the browser button
}
});
将以上代码放到 cdeditor 的 配置文件未尾。然后把 upfile_ajax_box(txtUrlId,'/upfiles/up.aspx?CKEditor=yes','CK文件上传',400,300); 改成你自己的上传页即可。upfile_ajax_box() 是偶自己写的JS方法,目的是动态添加一个DIV层,然后这个层IFRAME引用上传页即可实现完美上传。(上述ckeditor 代码是参考另一位朋友的代码,记不清哪位了,他是用的 Dialog 上传,Dialog 只支持IE,所以偶才改用自己的JS通过 iframe 调用上传,完美兼容各浏览器。。。
招数二:完美法
在 ckeditor 的 config.js 中指定上传页为自己的上传页面。
config.filebrowserImageUploadUrl = '/upfiles/?'+Math.random();