【发布时间】:2023-01-10 17:12:21
【问题描述】:
我正在尝试创建一个文本编辑器,我正在使用 contenteditable div,每次有人更改其中的文本时,我想用 strong 元素包装所有新文本并更改 div 的 innerHTML
这是我尝试过的(我正在使用 react/nextjs)
使用效果(()=> { 如果(!divRef.current)返回;
let text = divRef.current.innerText;
const htmlArray = text.split(" ").map((word) => {
return `<strong style="color: red">${word} </strong>`;
});
text = htmlArray.join("");
divRef.current.innerHTML = text;
}, [文本]);
这里的一切都按预期工作,但每次我键入一个字符时,光标都会转到开头,文本会向后呈现。如何解决我希望光标在用户键入时停留在 div 末尾的问题
【问题讨论】:
-
@JanPfeifer 我试过那个方法但是它对我不起作用(抛出错误)
execute 'setStart' on 'Range': parameter 1 is not of type 'Node'.
标签: javascript html reactjs typescript contenteditable