为什么都说富文本编辑器是天坑

发布网友 发布时间:2022-04-22 16:40

我来回答

1个回答

热心网友 时间:2023-10-21 23:55

主要是对 DOM 的处理存在兼容性问题,所以要实现一个功能完备的富文本编辑器非常麻烦。

现在的 WYSIWYG 主要用 contentEditable 来实现,例如要对选中的文本进行操作(如加粗、字号),需要先判断光标的位置,用 Range 判断选中的文本在哪里,然后判断这段文本是不是已经被处理过,需要覆盖、去掉还是保留原效果,这里还有可能涉及到标签的嵌套,例如

<b>aa<i>a</i></b><i>bbbb</i>cccc

如果用户选择了 abbbbcc 这段文字加粗,应该怎么做?如果用户跨节点边界选择文本按了退格键,表现出的行为很大可能和你的预期是不一样的,光是处理这其中的逻辑就已经很复杂了。还不用说要实现像撤销这样的操作必须手动进行 history 栈的管理、对用户的输入进行转义、拖拽上传操作、Latex 公式支持之类。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com