Javascript 将插入符号位置设置为<;代码>;标签

Javascript 将插入符号位置设置为<;代码>;标签,javascript,input,caret,Javascript,Input,Caret,所以,基本上我正在制作类似smth的多色文本区域,并填充不同颜色的输入数据。 例如,用户输入单词:1、2、3 我用逗号拆分标签值,然后将它们全部包装并设置一些颜色: <code> <span style="color: green">one</span>, <span style="color: yellow">two</span>, <span style="color: red">three</span> &

所以,基本上我正在制作类似smth的多色文本区域,并填充不同颜色的输入数据。 例如,用户输入单词:1、2、3

我用逗号拆分标签值,然后将它们全部包装并设置一些颜色:

<code>
<span style="color: green">one</span>,
<span style="color: yellow">two</span>,
<span style="color: red">three</span>
</code>

一,,
二,,
三
我只是在听变化,输入新包装的单词,并使用适当的颜色。 但不幸的是,我遇到了非常奇怪的行为:在插入了这个格式化文本后,插入符号在最后一个
之前移动。例如,如果我正在编辑wordtwo,则插入符号将移动到
one


有人能告诉我为什么
有如此奇怪的行为,以及如何更好地解决这个问题吗?..

你在哪里输入数据?在代码标签中?是否添加了
contenteditable
属性?什么时候用逗号分开?您是否有事件监视键盘?因此,我将
contenteditable
属性放入
标记,并为
'input'
事件放置侦听器。当smth发生变化时,我得到了该
的全部文本,并对该内容进行了新的格式设置。但是当我插入新格式化的内容时,插入符号在
标记之前移动