小指标
- 应用 ts 从零实现一个简略的富文本编辑器
- 初步实现“设置题目”,“加粗”,“设置色彩”这几个基本功能
常识筹备
-
contenteditable 属性
给任何一个元素加上
contenteditable="true"
便可使其可编辑,由此为根底便可实现一个简略的富文本编辑器了。<div contenteditable="true"></div>
-
Document.execCommand()
当 HTML 文档切换到
designMode
时,它的文档对象将公开一个 execCommand 办法来运行操作以后可编辑区域的命令,如表单输出或可满足元素。document.execCommand(aCommandName, aShowDefaultUI, aValueArgument)
实现过程
-
初始化我的项目
"lint": "eslint . --ext .js,.ts", "build": "webpack --env production", "start": "webpack-cli serve"
基于 webpack 搭建一个根底我的项目,
yarn start
用于本地开发。yarn build
用于构建生产文件。 -
确定繁难富文本编辑器的调用形式
import Editor from '../src/editor'; new Editor('#editor_root', { style: {height: '300px',}, });
-
初始化编辑器构造
- 实现编辑器菜单
总结
- 繁难富文本编辑器的基本功能已实现
webpack
目前尚不反对 export library 为es6 module
- 尚未增加单元测试
document.execCommand
已被标记为Obsolete
源码地址