富文本编辑器,当底部有空行存在时,渲染出来的效果就很丑
会有如图所示的空行显示,将单元格撑高了。在不专业的用户眼里,他并不知道这是由于他自己输入的回车导致的如图效果,也不知道可以重新编辑将空行删掉解决问题。
所以,如果要让用户闭嘴,我们可以这样处理。增加一个配置项,开启之后,文本底部有空行的自动去除。
观察富文本源代码发现,空行是由<p>&npsp;</p>组成,并且每一行代码最后都有一个隐藏的换行符。观察保存接口,发现是\n换行符。
处理底部空行数据,可以通过\n换行符分隔数据,再反序遍历数据,空行的数据就删掉,直到不是空行的数据就停止遍历。这样就只会删除底部的空行数据,文本中的空行数据就可以保留了。
let result = ''
// 是否隐藏尾部空行
let hiddenTailEmptyLines = 1
// 获取其他属性
const otherJsonStr = this.otherJsonMap[dataSetCode]
if (otherJsonStr) {
const otherJson = JSON.parse(otherJsonStr)
hiddenTailEmptyLines = otherJson && otherJson.hiddenTailEmptyLines ? 1 : 0
}
// 开启隐藏尾部空行处理
if (hiddenTailEmptyLines === 1) {
// 根据换行符拆分数组
const arr = item.val.split('\n')
// 倒序遍历
for (let i = arr.length - 1; i >= 0; i--) {
// 获取当前行html
const lineHtml = arr[i]
// 当前行为空行
if (lineHtml === '<p> </p>') {
// 删除空行
arr.splice(i, 1)
// 当前行不为空行 结束循环
} else {
break
}
}
// 重新组合结果
result = arr.join('\n')
}
return result





发表评论