Chrome 光标在contenteditable中的错误位置

ycl3bljg  于 2023-05-20  发布在  Go
关注(0)|答案(2)|浏览(237)

我有一个contentitable div,里面有不可编辑的“islands”。一切都很好,直到不可编辑部分是可编辑div中的最后一件事。在这种情况下,光标不是在不可编辑的div后面,而是在可编辑的div的最后。
请看我从question借用的这个例子
这里有一个小提琴,你可以试试:http://jsfiddle.net/RYsvZ/2/。当你删除最后的点时,光标会跳开。这种行为是与Safari和 chrome 。我想是webkit的问题。
下面是代码示例:

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

你知道为什么会发生这种情况,以及如何解决它吗?

ff29svar

ff29svar1#

&zwnj;<button contenteditable=false>press</button>&zwnj;

这个问题是由插入符号没有空间进入,所以如果你把你的contenteditable div Package 在零宽度,非连接空间,它给插入符号的地方去。
jsfiddle

xu3bshqb

xu3bshqb2#

当contenteditable=false是
元素。据我所知,这是webkit bug。你总是要确保“contenteditable=false”是用hidden_char或zero-width-white-space Package 的:

  • HIDDEN_CHAR:“\ufeff”
  • ZERO_WIDTH_WHITESPACE:”

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

相关问题