我有一个 contenteditable div,它的内容在每次 textchange( textchange.js)就像添加html标签(仅用于更改某些单词颜色的span-tags)并在此处和那里添加或删除一些空格,但我的问题是因为在用户编辑内容时内容正在更改,插入符号会更改其位置每次按键后,这使得几乎不可能写一个单词。我目前正在寻找一种方法来防止这种跳跃,我已经考虑过在编辑它之前添加一个特殊的字符,无论如何都不会在插入符号的位置用作一种标记,删除它当完成并将插入符号放回这个位置时,但由于我经常使用正则表达式(目前在每次文本更改后大约 25 次)这个特殊字符会毁掉几乎每一个字符,我将不得不添加类似\x40?
每个地方,看起来都不是很好和清晰:
/\s<span class="b0">hello\sworld</span>/g
至:
/\s\x40?<span class="b0">\x40?h\x40?e\x40?l\x40?l\x40?o\x40?\s\x40?w\x40?o\x40?r\x40?l\x40?d\x40?</span>/g
我不知道它是否有帮助,但这里有一个关于如何更改内容的示例(每次按键后):
foo +++ <span class="c3">bar</span> - baz -<span class="c0">qux</span>
至:
<span class="c1">foo</span> + <span class="c3">bar</span> - <span class="c1">baz</span> * <span class="c0">qux</span>
对于如何解决这个问题的每一个建议、提示或提示,或者做这个标记的更好方法,我将不胜感激。
谢谢 :)