在项目里遇到过在可编辑div中,输入时按回车实现内容换行,保存数据时保留换行符,回显内容也可以换行的问题,希望对遇到同样问题的小伙伴有所帮助,具体解决方案如下:
页面使用v-html绑定数据
<div :contenteditable="true" v-html="text" @blur="save($event)"></div>
监听回车事件,按回车插入换行符,<br>‌可实现输入时页面内容显示换行
document.onkeydown = function (e) {
if (e.code === "Enter") {
document.execCommand('insertHTML', false, '\n<br/>‌');
e.preventDefault();
}
};
保存时将\n存到后台,页面回显也可正常换行
save(e){
let saveText = e.target.innerText.trim();
//ToDo save
}