Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在可编辑的div中可靠地获取和设置光标/插入符号位置_Javascript_Html_Editor - Fatal编程技术网

Javascript 在可编辑的div中可靠地获取和设置光标/插入符号位置

Javascript 在可编辑的div中可靠地获取和设置光标/插入符号位置,javascript,html,editor,Javascript,Html,Editor,我正在构建一个简单的在线文档编辑器。在这个编辑器中,我希望文本被分成多个页面,每个页面都是一个contenteditable div 我想出了一个基本的算法。本质上,我检查当前处于焦点的div,看它是否比words\u PER\u PAGE常量中的单词多。如果是的话,就把这一页的最后一个字放在下一页的开头。然后在下一页上执行相同的检查,然后在下一页上执行相同的检查,等等,直到到达页面的末尾。当按下的键是delete/backspace键时,将执行类似的检查 现在这个算法并不完美(每一页的高度根据

我正在构建一个简单的在线文档编辑器。在这个编辑器中,我希望文本被分成多个页面,每个页面都是一个contenteditable div

我想出了一个基本的算法。本质上,我检查当前处于焦点的div,看它是否比
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)">
学分: