用过 slate 编辑器的都知道它对于中文输入有以下兼容性问题:
在 chrome 下,输入中文是,编辑区的光标始终停在拼音的前面(不影响输入,但体验很糟) 在 safari 等支持 onbeforeinpu蓝海市场t 方法的浏览器下(has_input_events_level_2)无法使用输入法输入中文
gitbook 使用的也是 slate 编辑器,但它对 slate 底层做了很多修改,解决了这些问题。在我对比 gitbook/slate 与 slate 时,没有找到解决方案。
后来,我在 slate 的 issue 里查找该问题,找到了一些不错的回答。
环境:slate 0.47.1 slate-react 0.22.1天津中医学院
参考 pull 气象灾害有哪些request 。找到相关源代码,修改即可。
按照上述代码修改之后,发现光标问题解决了,且 safari 浏览器下也有了一些小变化:输入法能正常工作了,但是最后的输入内容不会输入到 浏览器内。
参考 issue 。最后面用户 hudk114 的评论里有提到,需要在 oncompositionend 时,根据是否需要插入数据(has_input_events_level_2 为真时),调用 edit.inrttext 插入数据。
这样写就行:
const issynthetic = !!event.nativeeventif (issynthetic && h国考报考人数查询as_input_events_level_2){ e干性皮肤用什么洗面奶ditor.inrttext(event.data);}
修改了这两处之后,输入中文的问题即可解决。
本文发布于:2023-04-03 14:17:13,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/0090bc4daa3dbab577feff9e93b1ecb3.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:解决slate编辑器在safari下的兼容问题及中文输入法光标问题.doc
本文 PDF 下载地址:解决slate编辑器在safari下的兼容问题及中文输入法光标问题.pdf
留言与评论(共有 0 条评论) |