简单的实现一个富文本编辑器
使用过 office 文档的同学一定知道他的便捷,不仅可以很好的编辑文档,还可以赋予它一定的格式、段落、缩进,还可以使用图片等等。
如果我们在 web 上也想要实现这样的效果,那么我们应该怎么做呢?
我们可以在网上找到已经封装好的插件,例如:draft 或者 pell,这些插件都是开箱即用的,也可以在此之上进行封装。
当然,我们也可以选择自己封装一个我们需要的插件。
那怎么才能实现一个富文本编辑器呢?
我们可以选择 document.execCommand 来实现一个简易的富文本编辑器。
下面先来看下 document.execCommand 语法:
我们分别看看参数的含义:
既然知道了语法,那我们现在封装一个执行函数用来执行指令:
接下来,我们来做下工具栏的设计和封装。
假设工具栏有很多格式化的按钮,当我们点击的时候所选择的区域的文字会做相应改变,按钮既有显示的样式,还有执行功能的方法,可以使用对象来表示,所有按钮属性的集合形成了工具栏。
我们使用 actions 作为工具栏按钮的集合,即:
现在,我们来讲解下字段:
我们已经完成了工具栏的部分,现在我们实现下完整的页面和编辑区域吧!
首先创建富文本容器,在容器内分别放置工具栏和编辑区域:
我们最后来看一下实现的效果吧:
应用效果怎么样呢?我们看下面:
我们已经简单的实现了一个富文本编辑器,但是这个编辑器还有很大的空间等待我们去优化,比如:点击工具栏闪烁的问题,更多的功能等。