Google chrome 光标在contenteditable中的错误位置

Google chrome 光标在contenteditable中的错误位置,google-chrome,safari,webkit,cursor,contenteditable,Google Chrome,Safari,Webkit,Cursor,Contenteditable,我有不可编辑的“岛”的可编辑div。一切正常,直到不可编辑部分成为可编辑div中的最后一个部分。在这种情况下,光标不在不可编辑部分的后面,而是在可编辑div的末尾 看到这个例子了吗?我从这个例子中借来的 这是您可以试穿的小提琴: . 删除末尾的点时,光标会跳开。这种行为与safari和chrome是一致的。我想这是网络工具包的问题 下面是代码示例: <div contenteditable="true" class="editor"> Sample template with <

我有不可编辑的“岛”的可编辑div。一切正常,直到不可编辑部分成为可编辑div中的最后一个部分。在这种情况下,光标不在不可编辑部分的后面,而是在可编辑div的末尾

看到这个例子了吗?我从这个例子中借来的

这是您可以试穿的小提琴: . 删除末尾的点时,光标会跳开。这种行为与safari和chrome是一致的。我想这是网络工具包的问题

下面是代码示例:

<div contenteditable="true" class="editor">
Sample template with <span class="mergecode" contenteditable="false">MergeCode1</span>.
</div>

带有MergeCode1的示例模板。
你知道为什么会发生这种情况以及如何解决它吗;新闻与zwnj;
&zwnj;<button contenteditable=false>press</button>&zwnj;
这个问题是由插入符号没有空间进入而引起的,因此,如果将contenteditable div包装在零宽度的非连接空间中,它会将插入符号放在某个地方


当contenteditable=false是元素的最后一个子元素时,会发生这种情况。据我所知,这是webkit bug。始终确保“contenteditable=false”被包装为隐藏字符或零宽度空白:

  • 隐藏字符:“\ufeff”
  • 零\u宽度\u空白:​"

如果使用tinymce,则可以使用onNodeChange事件或在发生删除/退格时进行检查,并验证所有“contenteditable=false”“在光标附近。

我仍在努力,事实上我知道。我设法想出了一些解决办法,但有很多问题。我的解决方案是:每当用户更改文本时,我都会查找contenteditable的最后一个元素,如果它是不可编辑的部分,我会在末尾加上“ending”。“结束”是空的跨度。有很多极端情况,比如:当你编辑时,你不知道你是在“结束”之前、之后还是内部编辑,而它是空标签。另外,如果不可编辑部分是最后一部分,webkit会创建空文本节点,因此您也必须处理这些问题。这太棒了!非常感谢。哇,这帮了我很大的忙。我的问题是光标跳到左边,实际上有一个双光标,但这解决了它