All about RichTextEditor
-
L0
-
L1
-
L2
-
L3
总的来说,这 4 个阶段分别是在 模型Model、视图View、控制器Controller三个方面进行改进。
L0 就是最原始的阶段,使用的都是浏览器提供的能力,包括 Model 是原始的 HTML,View 是 contentEditable,Controller是浏览器自身的 execCommand。
L1 改进的地方是采用了 自定义 execCommand,其他地方都是是用浏览器提供的能力。
L2 改进的地方在 L1 的基础上,采用了 自定义数据模型,使用 JSON/XML 来保存数据,这样可以保证跨端也可以正常渲染。
L3 改进的地方是在 L2 的基础上,引入了 “自研排版引擎”,抛弃了 contentEditable。