【发布时间】:2011-11-19 01:41:35
【问题描述】:
我有一个 contenteditable div,其中包含典型的所见即所得编辑器 html(粗体、锚点、列表)。
我需要确定当前光标是onKeyDown,是在div的开头还是结尾。这样做的原因是,根据光标位置和按下的键,我可能想在退格键上将此 div 与前一个 div 合并,或者在 enter 时创建一个新的以下 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)
}
我会遇到这样的奇怪问题吗?
【问题讨论】:
标签: javascript html dom contenteditable rangy