Upgrade to Pro — share decks privately, control downloads, hide ads and more …

编辑器设计思路——UEditor

d2forum
July 20, 2012
19k

 编辑器设计思路——UEditor

随着网站和用户的交互越来越多,对于为用户和网站提供沟通的媒介,富文本编辑器,变得越来越重要,有时编辑器能否给用户提供一个最佳的书写体验,可能直接影响到整个网站的成败。本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现

d2forum

July 20, 2012
Tweet

Transcript

  1. • 用JS实现显示选区 • 实现:dom Range + html • 优势:展示可控,bug可控,扩展随意, 兼容性可控

    • 缺点:代码大,性能很差,准确性差 • 项目:google docs,weboffice
  2. 目录结构 • _examples各种展示页面 • _src是拆分的源码 • dialogs是各种弹出窗口 • php后台程序 •

    themes样式 • third-party第三方的插件 • editor_config.js全局配置文件 • editor_all/min是src下的所有整合文件
  3. 编辑命令 • execCommand • 针对当前选区执行操作命令 • queryCommandState • 根据当前选区返回执行命令的状态 •

    1执行过,0为执行,-1不可执行 • queryCommandValue • 根据当前选区返回跟执行命令相关的 值
  4. domRange • 组成 • startContainer 开始所属的节点(element/textNode) • startOffset 在开始节点中的偏移位置 •

    endContainer 结束所属的节点(element/textNode) • endOffset 在结束节点中的偏移位置 • collapsed 闭合状态吗 • document range所属的document