我有一个 contenteditable div,其中包含典型的所见即所得编辑器 html(粗体、锚点、列表)。
我需要确定当前光标是否位于 div 的开头和结尾处,onKeyDown。这样做的原因是,根据光标位置和按下的键,我可能想将此 div 与退格上的前一个 div 合并,或者在输入时创建一个新的以下 div。
我一直在摆弄范围,但是当您在元素中使用 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)
}
我会遇到这样的奇怪问题吗?