Javascript 在可编辑的div中可靠地获取和设置光标/插入符号位置
我正在构建一个简单的在线文档编辑器。在这个编辑器中,我希望文本被分成多个页面,每个页面都是一个contenteditable div 我想出了一个基本的算法。本质上,我检查当前处于焦点的div,看它是否比Javascript 在可编辑的div中可靠地获取和设置光标/插入符号位置,javascript,html,editor,Javascript,Html,Editor,我正在构建一个简单的在线文档编辑器。在这个编辑器中,我希望文本被分成多个页面,每个页面都是一个contenteditable div 我想出了一个基本的算法。本质上,我检查当前处于焦点的div,看它是否比words\u PER\u PAGE常量中的单词多。如果是的话,就把这一页的最后一个字放在下一页的开头。然后在下一页上执行相同的检查,然后在下一页上执行相同的检查,等等,直到到达页面的末尾。当按下的键是delete/backspace键时,将执行类似的检查 现在这个算法并不完美(每一页的高度根据
words\u PER\u PAGE
常量中的单词多。如果是的话,就把这一页的最后一个字放在下一页的开头。然后在下一页上执行相同的检查,然后在下一页上执行相同的检查,等等,直到到达页面的末尾。当按下的键是delete/backspace键时,将执行类似的检查
现在这个算法并不完美(每一页的高度根据单词的长度而变化),但它很好地满足了我的需要。真正困扰我的是设置光标位置并获取这些可编辑div的光标位置。我只需要一个函数getCursor(element)
,该函数将返回光标偏移的字符数,并setCursor(element,n)
将光标设置为偏移n个字符
我对IE<9一点也不在乎,所以我不需要一个不可靠的解决方法。我也不能使用朗吉图书馆或任何其他图书馆。我试过摆弄范围和选择对象,但什么都做不到。有人对我应该如何解决这个问题有什么想法或建议吗?
<div id="example-one" contenteditable="true" onclick="alert(window.getSelection().getRangeAt(0).startOffset)">
学分: