我需要在按下键时确定当前光标是否位于div的开头和结尾。这是因为根据光标位置和按下的键,我可能想在回退时将此div与前一个div合并,或在按Enter键后创建一个新的div。
我一直在尝试使用范围(range)进行调整,但当你在元素内部处理HTML时,事情变得非常复杂。
我希望我可能会忽略一些简单的解决方案。
是否有相对简单的方法来确定这一点?我愿意使用像Rangy这样的库。
谢谢!
编辑:我在考虑以下思路:
$('.mycontenteditable').bind('keydown', handle_keydown)
handle_keydown = function(e) {
range = window.getSelection().getRangeAt(0)
start_range = document.createRange()
start_range.selectNodeContents(this.firstChild)
start_range.collapse(true) // collapse to start
is_start = start_range.compareBoundaryPoints(Range.START_TO_START,range)
end_range = document.createRange()
end_range.selectNodeContents(this.lastChild)
end_range.collapse(false)
is_end = end_range.compareBoundaryPoints(Range.END_TO_END,range)
}
我会遇到任何奇怪的问题吗?