只针对 1.4.3 jsp 版本其他版本估计也差不多,刚开始上传图片各种错误,又是配路径又是导jar包啥的,这都不说了,作为一个前端真的不太会玩这些java的东西,刚好同事搞过,把他的搬来用,他的版本很低1.3.6,高了半天上传上去是自定义的一个文件夹,就存在tomcat下面的,而我要的是上传我们的后台接口,又换成我的版本,搜了很久终于找到正确方法;
主要改三个地方:
1、实例化之前复写官方的方法 :
UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
UE.Editor.prototype.getActionUrl = function(action) {
if (action == 'uploadimage' || action == 'uploadscrawl') {
return 'http://192.168.100.162:8080/laobingmng/common/upload.do';//这就是自定义的上传地址
} else if (action == 'uploadvideo') {
return '';
} else {
return this._bkGetActionUrl.call(this, action);
}
}
2、改config.json,就是那个imageFieldName,跟你接口要的一致即可,其他不用改
3、改主框架的上传完成的回到函数,主要是我服务器返回的数据跟他的条件判断对不上,上传图片没添加进去,因为原来的数据结构可能跟你的数据结构不一样,所以你要改一下 ueditor.all.js 里面的代码,我的版本大概在 24518 行,一个叫 callback 的函数
//此处省略数行代码
var link, json, loader,
body = (iframe.contentDocument || iframe.contentWindow.document).body,
result = body.innerText || body.textContent || '';
json = (new Function("return " + result))();
//link = me.options.imageUrlPrefix + json.url;这一行就是官方的代码,我改成了下面一句,具体请参考自己数据格式改写
link = typeof json.data!="undefined"? json.data.url:"http://"+location.hostname+':'+location.port+json.url;
if((json.state == 'SUCCESS' && json.url) || json.code==200) {
loader = me.document.getElementById(loadingId);
loader.setAttribute('src', link);
loader.setAttribute('_src', link);
loader.setAttribute('title', json.title || '');
loader.setAttribute('alt', json.original || '');
loader.removeAttribute('id');
domUtils.removeClasses(loader, 'loadingclass');
} else {
showErrorLoader && showErrorLoader(json.state);
}
看下图
以上步骤完成后就可以愉快使用编辑器了
附上自己的功能配置
var config = {
toolbars: [
['fullscreen','undo', 'redo','anchor', //锚点
'bold', //加粗
'indent', //首行缩进
'italic', //斜体
'underline', //下划线
'strikethrough', //删除线
'subscript', //下标
'fontborder', //字符边框
'superscript', //上标
'formatmatch', //格式刷
'pasteplain', //纯文本粘贴模式
'selectall', //全选
'horizontal', //分隔线
'removeformat', //清除格式
'time', //时间
'date', //日期
'unlink', //取消链接
'insertrow', //前插入行
'insertcol', //前插入列
'mergeright', //右合并单元格
'mergedown', //下合并单元格
'deleterow', //删除行
'deletecol', //删除列
'splittorows', //拆分成行
'splittocols', //拆分成列
'splittocells', //完全拆分单元格
'deletecaption', //删除表格标题
'inserttitle', //插入标题
'mergecells', //合并多个单元格
'deletetable', //删除表格
],['cleardoc', //清空文档
'insertparagraphbeforetable', //"表格前插入行"
'insertcode', //代码语言
'fontfamily', //字体
'fontsize', //字号
'paragraph', //段落格式
'simpleupload', //单图上传
//'insertimage', //多图上传
'edittable', //表格属性
'edittd', //单元格属性
'link', //超链接
'emotion', //表情
'spechars', //特殊字符
'searchreplace', //查询替换
'map', //Baidu地图
'insertvideo', //视频
'justifyleft', //居左对齐
'justifyright', //居右对齐
'justifycenter', //居中对齐
'justifyjustify', //两端对齐
'forecolor', //字体颜色
],['backcolor', //背景色
'insertorderedlist', //有序列表
'insertunorderedlist', //无序列表
'rowspacingtop', //段前距
'rowspacingbottom', //段后距
'pagebreak', //分页
'imagenone', //默认
'imageleft', //左浮动
'imageright', //右浮动
//'attachment', //附件
'imagecenter', //居中
'wordimage', //图片转存
'lineheight', //行间距
'edittip ', //编辑提示
'customstyle', //自定义标题
'autotypeset', //自动排版
'touppercase', //字母大写
'tolowercase', //字母小写
'background', //背景
'template', //模板
'scrawl', //涂鸦
'music', //音乐
'inserttable', //插入表格
'print', //打印
'preview', //预览
]
],
autoHeightEnabled: true,
autoFloatEnabled: true,
wordCount:false,
elementPathEnabled:false,
initialFrameHeight:330,
initialFrameWidth:750
}