商城首页欢迎来到中国正版软件门户

您的位置:首页 >百度UEditor修改右下角统计字数包含html样式

百度UEditor修改右下角统计字数包含html样式

  发布于2026-05-03 阅读(0)

扫一扫,手机访问

百度UEditor修改右下角统计字数

不知道你有没有遇到过这种情况:在用百度UEditor编辑器的时候,右下角那个字数统计,显示的数字总感觉对不上?明明前台看到的文字没那么多,为啥统计出来的数却大了不少?

其实道理很简单。这个统计功能默认计算的是你编辑区内“所见即所得”的文字个数。但问题来了,当你点击保存时,系统实际存储的是包含所有HTML标签的完整代码。这样一来,前后统计的口径就对不上了——前端显示的是纯文字数,后端保存的却是带了“包装”的总字符数。显然,为了管理后台的准确性,我们需要让前端的统计也反映这个“总字符数”。

核心修改步骤

要解决这个问题,关键得修改编辑器底层的一个计数方法。不用慌,调整起来并不复杂。

/***
 * 计算编辑器当前内容的长度
 * @name getContentLength
 * @grammar editor.getContentLength(ingoneHtml,tagNames) =>
 * @example
 * editor.getLang(true)
 *
 * 2013年7月1日16:53:15 注释掉的内容为 去除html标记后的内容数,实际入库是算上html标签和文字的 所以统计字数以getContents为准
 */
getContentLength: function (ingoneHtml, tagNames) {
    var count = this.getContent(false,false,true).length;
    /*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;
},

看上方的代码块,重点就在中间那一段被注释掉的条件判断语句。原来的逻辑是:如果要求忽略HTML(ingoneHtml为true),就去计算纯文本长度,再补上一些特定标签的个数。但正如代码注释里老早就说明的——实际入库是算上HTML标签和文字的。所以,最直接的办法就是让这个函数始终返回包含标签的总长度。

那么,具体怎么操作呢?找到项目里的 ueditor.all.js 这个核心文件,定位到第4944行到4951行(大致在这个区间,不同版本可能稍有出入)。你会发现和上面代码块中类似的一段逻辑,果断把那个if判断语句整个注释掉,就像示例中那样。修改完成后保存,刷新页面看看,右下角的字数应该就已经是和保存后字符数一致的总数了。

话说回来,这种设计其实挺合理的,毕竟后端数据库存储和内容校验,都是以包含格式的总字符数为准。这么一改,前后端的数据口径就统一了,管理起来也省心不少。

本文转载于:https://www.jb51.net/article/52645.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注