热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

完美解决ueditor和neditor上传图片(视频)上传成功显示异常

(一)前言:二次开发编辑器neditor(基于百度编辑器ueditor):界面相对于ueditor会更美观.(二)问题描述:最近在公司项目中遇到一个比较奇葩的问题。neidito

(一)前言:


二次开发编辑器neditor(基于百度编辑器ueditor):界面相对于ueditor会更美观.



(二) 问题描述:

最近在公司项目中遇到一个比较奇葩的问题。neiditor编辑器上传图片用时,插入图片初始为loading图,载入成功后才显示上传的图片。插入图片后不做任何修改时,编辑器的content内容为:



简单说就是图片上传成功了。且在编辑器内显示,但是在我进行了保存或者提交页面操作时,存在数据库的图片被替换成以上图片路径


(三)问题解决:

这个问题还是比较棘手的,因为neditor的参考资料其实很少。问题描述也很少。笔者也是通过Google和百度双管齐下。找到问题所在:


方法一:在配置中 config取消单张图片上传,使用多张图片上传代替(暂无尝试)


 


方法二:修改ueditor.all.js中简单上传函数.在图片上传完成后修改loading图的src属性,展示真实图片后,在末尾插入一个空字符串来出发$apply(使用此方式)


如果你是ueditor(请记得更新完源码,更新网页缓存,使得ueditor.all.js重新加载)

ueditor.all.js 24518行function callback(){try{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;if(json.state == 'SUCCESS' && json.url) {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');me.execCommand('inserthtml', ''); // 就是这一行,记住了!!!} else {showErrorLoader && showErrorLoader(json.state);}}catch(er){showErrorLoader && showErrorLoader(me.getLang('simpleupload.loadError'));}form.reset();domUtils.un(iframe, 'load', callback);
}修改源码后就可以解决这个问题啦

neditor(添加 me.execCommand('inserthtml', ''); ):


(四)借鉴资料

站在前人的肩膀上解决问题

(1)neiditor插入视频回显时中间视频图标丢失

(2)ueditor使用中,插入图片,加载完成后不更新

(3)UEditor 上传图片提交不显示的 BUG


推荐阅读
author-avatar
桃子小1992
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有