如何实现文本编辑?

zxcullx 2014-10-17 01:19:22
想要实现一个文本编辑器, 主要是想探讨一下思路.

这里面的关键是要实现对文本中每个字符的独立操作. 不过我不知道如何在一个文本块中定位和操作一个单独的字符, 好像不太可能啊. event不会告诉我当前鼠标所在位置是哪个字符, 也不可能在一个文本块中高亮显示一个单独的字符.

怎么将一个包含许多字符的文本"化整为零"呢?

当然, 一个简单的办法就是将待编辑的文本打散, 每个字母用一个<span>或别的什么封装起来. 这样操作上当然是没有任何问题, 编辑结束以后, 再将所有的<span>合成为一段文本.问题是, 这么做开销会非常大, 编辑的文本可能有数千甚至上万个字, 难道要创建上万个元素吗? 这样效率也会是一个问题.

不知道现在的编辑器采用的是怎样的做法, 大家有什么好的建议吗?
...全文
100 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
slwsss 2014-10-20
  • 打赏
  • 举报
回复
会飞的Pikachu 2014-10-18
  • 打赏
  • 举报
回复
Ueditor开源编辑器 contenteditable=true
zxcullx 2014-10-18
  • 打赏
  • 举报
回复
我说的不是用现成的编辑器, 而是自己写一个. 这一点应该很清楚吧. 上这儿提问是比较偷懒了, 自己去看代码是个更彻底的解决办法.

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧