我正在构建一个简单的在线文档编辑器。在这个编辑器中,我希望将文本分成页面,每个页面都是一个 contenteditable div。
我想出了一个基本的算法来做到这一点。本质上,我检查当前焦点的 div 以查看它是否有比WORDS_PER_PAGE
常量更多的单词。如果确实如此,则将本页的最后一个单词放在下一页的开头。然后您在下一页、下一页等上执行相同的检查,直到您到达页面的末尾。当按下的键是删除/退格键时,执行类似的检查。
现在这个算法并不完美(每个页面的高度取决于单词的长度)但它很适合我的需要。真正困扰我的是设置光标位置并获取这些可编辑 div 的光标位置。我想要的只是一个函数getCursor (element)
,它将返回光标偏移的字符数,并将光标setCursor (element, n)
设置为 n 个字符偏移量。
我对 IE < 9 不屑一顾,所以我不需要一个不稳定的解决方法。我也不能使用 Rangy 库或任何其他库。我试过弄乱 Range 和 Selection 对象,但我什么也做不了。有没有人对我应该如何解决这个问题有任何想法或建议?