ueditor编辑器在统计输入的字数时,输入图片时右下角显示的已输入字符数统计小了,经反复测试,发现问题如下:
选择图片后,编辑器会先生成一个<img>图片(使用了其内部图片)先做显示,测试路径如下:
<p><img title="正在上传..." class="loadingclass" id="loading_i3tjakb1" src="./ueditor1_4_3-utf8-jsp/themes/default/images/spacer.gif"/></p>
表单提交后,将返回的url再设置到刚才生成的<img>src中,使其从新显示,测试路径如下:
<p><img title="1418871056363016525.jpg" alt="C:Userslucky godDesktop\u7701委农工委办公自动化系统liuyi.jpg" src="/ueditor1_4_3-utf8-jsp/jsp/upload/image/20141218/1418871056363016525.jpg"/></p>
但问题来了:生成内部<img>时,触发了change事件,并统计已输入字符数,而修改了src值是不会触发change事件从新统计的,所以显示与得到的字符长度其实不同。
解决方法如下:打开/ueditor1_4_3-utf8-jsp/ueditor.all.js(当然引用哪个js就修改哪个),找到方法 initUploadBtn()中的回调方法callback(),修改如下
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');
//2014-12-18 将编辑器的值重新设置一遍,触发change事件
me.setContent(me.getContent());
}
同时,如果拖动图片到编辑器也要进行处理:
找到sendAndInsertFile(file, editor)方法,修改其部分代码:
if (loader) {
loader.setAttribute('src', link);
loader.setAttribute('_src', link);
loader.setAttribute('title', data.title || '');
loader.setAttribute('alt', data.original || '');
loader.removeAttribute('id');
domUtils.removeClasses(loader, 'loadingclass');
//2014-12-18 将编辑器的值重新设置一遍,触发change事件
me.setContent(me.getContent());
}
在这之前需要修改统计方法:(原文地址http://blog.youkuaiyun.com/woshishui6501/article/details/9216411)
getContentLength: function (ingoneHtml, tagNames) {
var count = this.getContent(false,false,true).length;
//注释掉的内容为 去除html标记后的内容数,实际入库是算上html标签和文字的 所以统计字数以getContents为准
/*if (ingoneHtml) {
tagNames = (tagNames || []).concat([ 'hr', 'img', 'iframe']);
count = this.getContentTxt().replace(/[\t\r\n]+/g, '').length;
for (var i = 0, ci; ci = tagNames[i++];) {
count += this.document.getElementsByTagName(ci).length;
}
}*/
return count;
}
本文详细介绍了ueditor编辑器在处理图片上传时导致的字数统计错误问题,并提供了针对性的解决方案,包括修改关键JS文件以确保在修改图片URL后能正确触发change事件,从而更新字数统计。
6698

被折叠的 条评论
为什么被折叠?



