wuyuedefeng / blogs

博客文章在issue中
5 stars 0 forks source link

Javascript 实现在线编辑器的知识调研 #108

Open wuyuedefeng opened 3 years ago

wuyuedefeng commented 3 years ago

redo/undo

每次文档发生改变的时候,我们可以把其htmlcode 和 selection 选区一起保存。存入一个数组里,只要数据都存好了,想undo/redo都是很轻松的事情了。

小tips:

  • 可以通过 document.selection.createrange().getbookmark()方来 来保存选区状态。
  • undo的时候用 document.selection.createrange().movetobookmark()方法来恢复选区。

备注:没有必要每输入一个字就增加一个undostep,这样太浪费内存空间了。 这里还需要对document.onkeydown函数做一些配合处理。