富文本编辑器+中文输入法+复杂DOM节点+macOS = 诡异故障

876 阅读1分钟

如果光标紧贴某个 具有一定结构的DOM节点 则在macos中,中文输入法会抽风。

在dom节点右侧加一个空格隔离,就能解决这一问题。

这个和compositionstart & Compositionend 事件相关,似乎Compositionend事件不触发?总之问题非常大,且无法解决。

感觉和光标位置有关系,如果光标位于那个奇怪的unicode占位符处(),中文输入法(CJK三种输入法都是难兄难弟)就不太正常,几乎无法正常使用,输入的英文字母直接进入文本框,无法正常调用输入法。

而这个占位符()在quillJS中,是用来让光标focus的,不能去除。

这个在slateJS中也有出现,但slateJS可用特殊的Node结构解决这一问题。下面那个包裹着一个空格的span,就能让slatejs恢复正常。

image-20220120165827240.png